Rimuovere i dati dalla cache
NCache fornisce un Remove' and a
Metodo Delete` per la rimozione di un oggetto dalla cache. La differenza tra questi metodi è indicata di seguito:
Delete
restituisce void dopo la cancellazione dell'elemento dalla cache.Remove
elimina i dati dalla cache e restituisce l'elemento eliminato.
Nel Delete/Remove
Chiamate API, se è configurata un'origine di supporto e il write-through è abilitato, tutte le chiavi passate alla cache tramite l'API verranno prima esaminate ed eliminate dalla cache e, indipendentemente dalla mappatura delle chiavi, la chiamata verrà inoltrata a la fonte di supporto.
Prerequisiti
- Aggiungi le seguenti dipendenze Maven nel tuo pom.xml file:
<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>
- Importa i seguenti pacchetti nella tua applicazione:
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.spi.CachingProvider;
- Assicurati che i dati siano serializzati o registrati con NCache Formato di serializzazione compatto.
- Assicurati che la cache sia in esecuzione.
Usando il metodo Rimuovi
Il Remove
Il metodo rimuove la chiave dalla cache e restituisce l'oggetto rimosso all'applicazione, dove NCacheIl metodo di rimozione del provider dell'API JCache di JCache si comporta secondo le specifiche di 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.
}
Utilizzo del metodo di eliminazione
Il Delete
il metodo elimina la chiave dalla cache. Avrai bisogno di ottenere NCache L'istanza della cache dell'API per eseguire questa operazione.
// Specify the key to be deleted
String key = "Product:1001";
// Delete the key from the cache
cache.delete(key);
Rimuovere i dati in blocco dalla cache
Proprio come l'operazione di rimozione atomica, removeAll
restituisce anche gli elementi rimossi. Qui gli elementi rimossi vengono restituiti sotto forma di HashMap. Tuttavia, NCacheAPI di JCache removeAll
il metodo può essere utilizzato anche per eliminare elementi in blocco, che si comporta come lo documenta Oracle.
Per entrambi, l'atomico e il bulk Delete/Remove
Chiamate API, se è configurata un'origine di supporto e il Write-Through è abilitato, tutte le chiavi passate nella cache tramite l'API verranno prima archiviate ed eliminate dalla cache e, indipendentemente dalla mappatura delle chiavi, la chiamata verrà inoltrata al fonte di supporto.
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());
Rimuovere gli elementi dalla cache in modo asincrono
NCache fornisce il AsyncItemRemovedCallback
interfaccia da utilizzare per ricevere una notifica al completamento della rimozione dell'elemento. Aggiungi il seguente pacchetto alla tua applicazione per utilizzare questa API.
String key = "Product:1001";
EventListener listener = new EventListener();
cache.removeAsync(key, (AsyncItemRemovedCallback) listener, DSWriteOption.None, null);
Creare un callback per registrare gli eventi per gli elementi rimossi dalla cache in modo asincrono.
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
}
}
}
Vedere anche
Inizializza cache
Aggiungi/Aggiorna nella cache
Cancella cache
Ibernazione della cache
NCache Modulo di sessione Java