Quitar datos de la caché
NCache proporciona una Remove' and a
Método Delete` para eliminar un objeto del caché. La diferencia entre estos métodos se indica a continuación:
Delete
devuelve nulo después de la eliminación del elemento del caché.Remove
elimina los datos de la memoria caché y devuelve el elemento eliminado.
Delete/Remove
Llamadas API, si se configura una fuente de respaldo y la escritura directa está habilitada, todas las claves pasadas al caché a través de la API primero se buscarán y eliminarán del caché e, independientemente de la asignación de claves, la llamada se reenviará a la fuente de respaldo.
Requisitos previos
- Agregue las siguientes dependencias de Maven en su pom.xml archivo:
<dependency>
<groupId>com.alachisoft.ncache</groupId>
<!--for NCache Enterprise Edition-->
<artifactId>ncache-client</artifactId>
<!--for NCache Professional Edition-->
<artifactId>ncache-professional-client</artifactId>
<version>x.x.x</version>
</dependency>
- Importe los siguientes paquetes en su aplicación:
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.spi.CachingProvider;
- Asegúrese de que los datos estén serializados o registrados con NCache Formato de serialización compacto.
- Asegúrese de que el caché se esté ejecutando.
Uso del método de eliminación
La Remove
El método elimina la clave del caché y devuelve el objeto eliminado a la aplicación, donde NCacheEl método de eliminación del proveedor de la API de JCache se comporta según las especificaciones de JCache.
String key = "Product:1001";
Product product = null;
// False is returned if key does not exist in cache
Boolean result = cache.remove(key);
if (result != true)
{
//Deleted.
}
else
{
//Failed.
}
Uso del método de eliminación
La Delete
El método elimina la clave de la memoria caché. tendrás que conseguir NCache Instancia de caché de API para realizar esta operación.
// Specify the key to be deleted
String key = "Product:1001";
// Delete the key from the cache
cache.delete(key);
Eliminar datos masivos de la memoria caché
Al igual que la operación de eliminación atómica, removeAll
también devuelve elementos eliminados. Aquí los elementos eliminados se devuelven en forma de HashMap. Sin embargo, NCacheAPI de JCache removeAll
El método también se puede usar para eliminar elementos de forma masiva, lo que se comporta como lo documenta Oracle.
Tanto para lo atómico como para lo masivo. Delete/Remove
Llamadas API, si se configura una fuente de respaldo y la escritura directa está habilitada, todas las claves que pasan al caché a través de la API primero se registrarán y eliminarán del caché e, independientemente de la asignación de claves, la llamada se reenviará al fuente de respaldo.
Product product1 = null, product2 = null;
String[] keys = {"Product:1001", "Product:1002"};
CacheItem[] items = new CacheItem[2];
items[0] = new CacheItem(product1);
items[1] = new CacheItem(product2);
HashMap map = new HashMap();
for (int i = 0; i < 2; i++)
{
map.put(keys[i], items[i]);
}
jCache.removeAll(map.keySet());
Eliminar elementos de la memoria caché de forma asíncrona
NCache proporciona AsyncItemRemovedCallback
interfaz que se utilizará para recibir una notificación al finalizar la eliminación del artículo. Agregue el siguiente paquete a su aplicación para utilizar esta API.
String key = "Product:1001";
EventListener listener = new EventListener();
cache.removeAsync(key, (AsyncItemRemovedCallback) listener, DSWriteOption.None, null);
Cree una devolución de llamada para registrar los eventos de los elementos eliminados de la memoria caché de forma asincrónica.
public class EventListener implements AsyncItemRemovedCallback
{
@Override
public void asyncItemRemoved(String string, Object o)
{
if(o.toString().equals("Success"))
{
// do something
}
if(o.toString().equals("Failure"))
{
// do something
}
if(o instanceof Exception)
{
// do something
}
}
}
Vea también
Inicializar caché
Agregar/Actualizar en Caché
Borrar la caché
Almacenamiento en caché de hibernación
NCache Módulo de sesión de Java