Eliminar datos de caché
NCache proporciona las dos sobrecargas siguientes con diferentes tipos de devolución para eliminar los objetos de los datos de la caché aceptando las claves del elemento de la caché como parámetro de entrada.
bool Remove<T>
void Remove
Requisitos previos
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Para obtener detalles de la API, consulte: Dolor, Contar, Eliminar, contiene, Quitar a granel, EliminarAsync.
Eliminar objeto de caché
Note
Esta característica también está disponible en NCache Professional.
Un objeto de una clase personalizada se puede eliminar de los datos de la caché utilizando cualquiera de las Remove
métodos.
Importante:
Si un elemento no existe en los datos de la caché, se devuelve nulo.
Consejo
Una forma rápida de verificar si un elemento se ha eliminado es utilizar cualquiera de las siguientes propiedades de la clase de caché:
Count
devuelve el número de elementos presentes en la memoria caché.Contains
verifica si existe una clave específica en el caché.
El siguiente ejemplo elimina el elemento correspondiente a la clave especificada y convierte el objeto devuelto en un Local objeto para comprobar si el objeto es de Local tipo o no. Si no, se vuelve a agregar a la memoria caché.
// 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 garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
Si desea ahorrar su costo computacional, puede usar el void Remove
función que no devuelve nada y por lo tanto se ejecuta más rápido. Así es como puedes usarlo.
Eliminar elementos masivos de la memoria caché
Note
Esta característica también está disponible en NCache Professional.
NCache proporciona una RemoveBulk
método para eliminar una gran cantidad de elementos de caché contra la matriz especificada de claves de caché. Devuelve un diccionario de las claves y objetos eliminados del caché.
Importante:
- Si los elementos especificados existen en la memoria caché, se devuelve un diccionario de las claves y los objetos eliminados.
Consejo
Una forma rápida de verificar si un elemento se ha eliminado es utilizar cualquiera de las siguientes propiedades de la clase de caché:
Count
devuelve el número de elementos presentes en la memoria caché.Contains
verifica si existe una clave específica en el caché.
El siguiente ejemplo elimina una gran parte de los elementos de caché existentes y convierte el objeto devuelto en Local 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.");
}
Eliminar objetos del caché con API asíncrona
RemoveAsync
devuelve el objeto de la Clase de tarea que se pueden usar más de acuerdo con las necesidades comerciales de la aplicación del cliente. NCache proporciona tres indicadores de estado diferentes para notificar el éxito o el fracaso de la operación.
Importante:
Diferente a la Remove
y RemoveBulk
, RemoveAsync
generalmente no devuelve los objetos eliminados a la aplicación, ya que es una operación asíncrona y debe recuperarse.
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 adicionales
NCache proporciona la aplicación de muestra para operaciones básicas en GitHub.
Vea también
.NETO: Alachisoft.NCache.Cliente espacio de nombres
Java: com.alachisoft.ncache.cliente espacio de nombres
Nodo.js: cache clase.
Pitón: ncache.cliente clase.