Remover dados de cache
NCache fornece as duas sobrecargas a seguir com diferentes tipos de retorno para remover os objetos dos dados de cache, aceitando as chaves do item de cache como parâmetro de entrada.
bool Remove<T>
void Remove
Pré-requisitos
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Para detalhes da API, consulte: ICache, Contar, Eliminar, contém, Remover em massa, RemoverAsync.
Remover Objeto do Cache
Note
Este recurso também está disponível em NCache Professional.
Um objeto de uma classe personalizada pode ser removido dos dados do cache usando qualquer um dos Remove
métodos.
importante
Se um item não existir nos dados do cache, será retornado nulo.
Dica
Uma maneira rápida de verificar se um item foi removido é usar uma das seguintes propriedades da classe de cache:
Count
retorna o número de itens presentes no cache.Contains
verifica se uma chave especificada existe no cache.
O exemplo a seguir remove o item correspondente à chave especificada e converte o objeto retornado em um Experiência e dinâmica de loja objeto para verificar se o objeto é de Experiência e dinâmica de loja tipo ou não. Caso contrário, ele é adicionado de volta ao cache.
// Precondition: Cache is already connected
// Unique cache key of product to remove
string key = $"Product:{product.ProductID}";
string customerKey = $"Customer:ALFKI";
// Create an object to store removed item
Customer customerRemoved = null;
// Remove specified item from cache
bool isItemRemoved = cache.Remove(customerKey, out customerRemoved);
if (isItemRemoved)
{
Console.WriteLine($"Customer with ID {customerRemoved.CustomerID} has been removed");
}
Note
Para garantir que a operação seja à prova de falhas, é recomendável lidar com possíveis exceções em seu aplicativo, conforme explicado em Como lidar com falhas.
Se você quiser economizar seu custo computacional, você pode usar o void Remove
função que não retorna nada e, portanto, executa mais rápido. Aqui está como você pode usá-lo.
Remover itens em massa do cache
Note
Este recurso também está disponível em NCache Professional.
NCache fornece uma RemoveBulk
método para remover uma grande quantidade de itens de cache em relação à matriz especificada de chaves de cache. Ele retorna um dicionário das chaves e objetos removidos do cache.
importante
- Se os itens especificados existirem no cache, um dicionário das chaves e objetos removidos será retornado.
Dica
Uma maneira rápida de verificar se um item foi removido é usar uma das seguintes propriedades da classe de cache:
Count
retorna o número de itens presentes no cache.Contains
verifica se uma chave especificada existe no cache.
O exemplo a seguir remove uma grande quantidade de itens de cache existentes e converte o objeto retornado em Experiência e dinâmica de loja objetos.
// Create an array of all keys to remove
String[] keysToRemove = new String[]
{
"Customer:ALFKI", "Customer:ANATR", "Customer:ANTON", "Customer:AROUT", "Customer:BERGS"
};
// Create dictionary to store removed items
IDictionary<string, Customer> removedItems;
// Remove items from DB
if (DeleteFromDB(keysToRemove))
{
// Remove bulk items from cache
cache.RemoveBulk(keysToRemove, out removedItems);
if (removedItems.Count != keysToRemove.Length)
Console.WriteLine($"Failed to remove {keysToRemove.Length - removedItems.Count} items from cache.");
}
Remover objetos do cache com API assíncrona
RemoveAsync
retorna o objeto do Classe de tarefa que podem ser usados posteriormente de acordo com as necessidades de negócios do aplicativo cliente. NCache fornece três sinalizadores de status diferentes para notificar o sucesso ou falha da operação.
importante
Diferentemente dos Remove
e RemoveBulk
, RemoveAsync
geralmente não retorna os objetos removidos para o aplicativo, pois é uma operação assíncrona e deve ser buscada.
string customerKey = $"Customer:ALFKI";
// Remove specified item from cache
Task<Customer> task = cache.RemoveAsync<Customer>(customerKey);
//This task object can be used as per your business needs
if (task.IsCompleted)
{
// Get Customer object from task result
Customer customer = task.Result;
Console.WriteLine($"Item {customer.CustomerID} has been removed.");
}
Recursos adicionais
NCache fornece o aplicativo de exemplo para Operações Básicas em GitHub.
Veja também
.INTERNET: Alachisoft.NCache.Cliente espaço para nome.
Java: com.alachisoft.ncache.cliente espaço para nome.
Node.js: Esconderijo classe.
Pitão: ncache.cliente classe.