Daten aus dem Cache entfernen
NCache stellt ein Remove' and a
Methode „Delete“ zum Entfernen eines Objekts aus dem Cache. Der Unterschied zwischen diesen Methoden ist unten aufgeführt:
Delete
gibt nach dem Löschen des Elements aus dem Cache void zurück.Remove
löscht die Daten aus dem Cache und gibt das gelöschte Element zurück.
Aussichten für Delete/Remove
API-Aufrufe: Wenn eine Sicherungsquelle konfiguriert und Durchschreiben aktiviert ist, werden alle über die API an den Cache übergebenen Schlüssel zunächst überprüft und aus dem Cache gelöscht, und unabhängig von der Schlüsselzuordnung wird der Aufruf weitergeleitet die Backing-Quelle.
Voraussetzungen:
- Fügen Sie die folgenden Maven-Abhängigkeiten in Ihrer pom.xml Datei:
<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>
- Importieren Sie die folgenden Pakete in Ihre Anwendung:
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.spi.CachingProvider;
- Stellen Sie sicher, dass die Daten serialisiert oder registriert sind NCache Kompaktes Serialisierungsformat.
- Stellen Sie sicher, dass der Cache ausgeführt wird.
Verwenden der Remove-Methode
Das Remove
Die Methode entfernt den Schlüssel aus dem Cache und gibt das entfernte Objekt an die Anwendung zurück NCacheDie Entfernungsmethode des JCache-API-Anbieters verhält sich gemäß den Spezifikationen von 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.
}
Verwenden der Löschmethode
Das Delete
-Methode löscht den Schlüssel aus dem Cache. Sie müssen bekommen NCache Die Cache-Instanz der API, um diesen Vorgang auszuführen.
// Specify the key to be deleted
String key = "Product:1001";
// Delete the key from the cache
cache.delete(key);
Entfernen Sie Massendaten aus dem Cache
Genau wie die atomare Entfernungsoperation, removeAll
gibt auch entfernte Artikel zurück. Hier werden die entfernten Elemente in Form einer HashMap zurückgegeben. Jedoch, NCache's JCache-APIs removeAll
-Methode kann auch zum Massenlöschen von Elementen verwendet werden, was sich so verhält, wie Oracle es dokumentiert.
Sowohl für das Atom als auch für die Masse Delete/Remove
API-Aufrufe: Wenn eine Sicherungsquelle konfiguriert und Durchschreiben aktiviert ist, werden alle über die API an den Cache weitergeleiteten Schlüssel zunächst in den Cache eingecheckt und daraus gelöscht. Unabhängig von der Schlüsselzuordnung wird der Aufruf an den weitergeleitet unterstützende Quelle.
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());
Elemente asynchron aus dem Cache entfernen
NCache bietet die AsyncItemRemovedCallback
Schnittstelle, die verwendet werden soll, um eine Benachrichtigung nach Abschluss der Artikelentfernung zu erhalten. Fügen Sie Ihrer Anwendung das folgende Paket hinzu, um diese API zu nutzen.
String key = "Product:1001";
EventListener listener = new EventListener();
cache.removeAsync(key, (AsyncItemRemovedCallback) listener, DSWriteOption.None, null);
Erstellen Sie einen Rückruf, um die Ereignisse für die asynchron aus dem Cache entfernten Elemente zu registrieren.
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
}
}
}
Siehe auch
Cache initialisieren
Im Cache hinzufügen/aktualisieren
Cache löschen
Hibernate-Caching
NCache Java-Sitzungsmodul