JCache: Cache initialisieren
Nach erfolgreichem Einstecken NCache In Ihre JCache-Anwendung ist eine Cache-Instanz erforderlich, um Cache-Vorgänge auszuführen. Java-Anwendungen können auch mit interagieren NCache Verwendung des als Teil von gepackten JCache-API-Anbieters NCache. Der JCache-API-Anbieter bietet eine praktische Methode zum Initialisieren der Cache-Instanz.
Voraussetzungen für JCache CRUD-Operationen
- Zur Verwendung von JCache mit NCache Professional, ersetze das
ncache-client
mitncache-professional-client
in Ihrer pom.xml.
<dependency>
<groupId>com.alachisoft.ncache</groupId>
<artifactId>ncache-client</artifactId>
<version>x.x.x</version>
</dependency>
- Fügen Sie die folgenden Pakete und ihre Bibliotheken in Ihre Anwendung ein NCache Installationsverzeichnis.
import javax.cache.CacheManager
import javax.cache.Caching;
import javax.cache.spi.CachingProvider;
Stellen Sie sicher, dass die Daten serialisiert oder registriert sind NCache Serialisierungsformat.
Stellen Sie sicher, dass der Cache ausgeführt wird.
Cache initialisieren
Die folgende Methode dient zum Abrufen einer Cache-Instanz in Java getCache
Methode des JCache CacheManager, bereitgestellt von NCache. Sie können eine Instanz eines zuvor konfigurierten Caches abrufen, indem Sie dessen Namen (eindeutige Kennung) als Argument für verwenden getCache
Methode.
//Create an instance of JCache's caching provider to get JCacheManager's instance by NCache.
CachingProvider provider = Caching.getCachingProvider();
CacheManager manager = provider.getCacheManager();
//Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
Erhalten NCache Cache-Instanz der API
NCacheDie API von bietet vergleichsweise erweiterte Caching-Funktionen, einschließlich Sperrung, Groups, Pub/Sub-Messaging, Schlüsselwörter und SQL-ähnlich Abfragefunktionen, die für komplexe, verteilte und hochlastige Szenarien von entscheidender Bedeutung sein können. Um auf alles zuzugreifen NCache's-Funktionen über JCache können Sie nutzen unwrap
Methode bereitgestellt von NCache. Mit dieser Methode können Sie eine tatsächliche Instanz von erhalten NCache, mit dem dann auf alles zugegriffen und es genutzt werden kann NCache's Fähigkeiten.
In diesem Beispiel wird eine Instanz des JCache-Caching-Anbieters erstellt, der eine Instanz des JCache-Managers abruft und diese dann entpackt NCache Instanz davon und erhält über ihren Namen einen Cache vom Manager.
//Create an instance of JCache's caching provider to get JCacheManager's instance by NCache.
CachingProvider provider = Caching.getCachingProvider();
CacheManager manager = provider.getCacheManager();
//Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Unwrapping NCache's cache instance from JCache's cache instance.
com.alachisoft.ncache.client.Cache cache = (com.alachisoft.ncache.client.Cache) jCache.unwrap(com.alachisoft.ncache.client.Cache.class);
Initialisieren Sie mehrere Caches in einer einzigen Anwendung
Um mehrere Caches in einer einzelnen Anwendung zu initialisieren, müssen die Caches zuvor konfiguriert und ausgeführt werden.
//Create an instance of JCache's caching provider to get JCacheManager's instance by NCache.
CachingProvider provider = Caching.getCachingProvider();
CacheManager manager = provider.getCacheManager();
//Get a cache from manager via its string name.
javax.cache.Cache demoCache = manager.getCache("demoCache");
javax.cache.Cache productCache = manager.getCache("productCache");
Daten im Cache hinzufügen/aktualisieren
Nach erfolgreicher Initialisierung und Erhalt eines Cache-Handles können Sie einen ausführen put
Betrieb. Es handelt sich um eine grundlegende Operation, die von JCache bereitgestellt wird und mit der mithilfe mehrerer API-Aufrufe Daten zum Cache hinzugefügt/aktualisiert werden können.
Objekte zum Cache hinzufügen
Im folgenden Beispiel wird ein Objekt einer benutzerdefinierten Klasse erstellt und dem Cache hinzugefügt. Dieses Element verfügt über alle im folgenden Code bereitgestellten Eigenschaften und wird mithilfe von zum Cache hinzugefügt put
Methode.
// Ensure that Cache is already initialized and the item exists.
Product product = new Product();
product.setProductID(1001);
product.setProductName("Chai");
String key = "Product:" + product.getProductID();
// Add data in cache with the values
jCache.put(key, product);
Daten im Cache aktualisieren
Im folgenden Beispiel wird ein Objekt einer benutzerdefinierten Klasse im Cache aktualisiert. Der replace
Die Methode überschreibt den bereits vorhandenen Wert des Objekts.
Product product = new Product();
product.setProductID(1001);
product.setProductName("Chai");
product.setUnitsInStock(5); // updated units.
String key = "Product:" + product.getProductID();
// Replace the item in the cache with updated item.
jCache.replace(key, product);
Massenelemente im Cache hinzufügen und aktualisieren
Mit können Sie eine ganze Sammlung von Elementen im Cache hinzufügen und aktualisieren putAll
Methode. Diese Methode gibt eine HashMap aller Schlüssel zurück, die nicht zusammen mit der Ausnahme hinzugefügt wurden.
Product product1 = new Product("1001", "Chai");
String key1 = "Product:" + product1.getProductID();
Product product2 = new Product("1002", "Coffee");
String key2 = "Product:" + product2.getProductID();
// Data to add in cache
HashMap dataMap = new HashMap();
dataMap.put(key1, product1);
dataMap.put(key2, product2);
// Get instance of JCacheManager
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Add/Update all keys in the cache
jCache.putAll(dataMap);
Aus Cache abrufen
JCache verwendet get
Methode zum Abrufen eines bestimmten Eintrags aus dem Cache über den Schlüssel.
Rufen Sie ein einzelnes Element aus dem Cache ab
Im folgenden Beispiel verwenden wir die Standardeinstellung get
Methode zum Abrufen eines bereits vorhandenen Objekts, "Produkt:1001". Dieses Element ist bereits im Cache vorhanden. Der get
Die Methode gibt ein Objekt zurück, das entsprechend umgewandelt werden muss. Wenn im Cache kein passender Schlüssel vorhanden ist, a null
Wert wird zurückgegeben.
// Get instance of JCacheManager.
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Key to get
String key = "Product:1001";
//Get specified item
Product product = (Product) jCache.get(key);
if (product != null) {
// business logic
}
Massendaten aus dem Cache abrufen
Um eine Sammlung aus dem Cache abzurufen, verwenden Sie die getAll
Methode. Diese Methode gibt eine Sammlung von Elementen als HashMap zurück.
// Get instance of JCacheManager.
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
HashSet keysToGet = new HashSet();
keysToGet.add("Product:1001");
keysToGet.add("Product:1002");
Map productsMap = jCache.getAll(keysToGet);
if (!productsMap.isEmpty())
{
for (Iterator iter = productsMap.values().iterator(); iter.hasNext();)
{
Product product = (Product) iter.next();
//utilize product object accordingly.
}
}
Daten aus dem Cache entfernen
JCache bietet remove
Methode zum Entfernen der Zuordnung für einen vorhandenen Schlüssel aus dem Cache.
Verwenden der Remove-Methode
Die Remove-Methode in der JCache-API entfernt die Zuordnung, die einem angegebenen Schlüssel zugeordnet ist, aus dem Cache, sofern vorhanden. Die Methode gibt „true“ (wenn der Cache den Schlüssel enthält und die Entfernung erfolgreich war) oder „false“ (wenn für den Schlüssel keine Zuordnung vorhanden ist) zurück. Das folgende Beispiel entfernt die Schlüsselzuordnungen für Produkt Klasse.
// Get instance of JCacheManager.
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Key to remove.
String key = "Product:1001";
// False is returned if key does not exist in cache.
boolean result = jCache.remove(key);
if (result != true) {
//Deleted.
}
else {
//Failed.
}
Massendaten entfernen
Der folgende Codeausschnitt entfernt die Elemente in großen Mengen aus dem Cache durch removeAll
Methode. Der Code ruft eine Instanz des JCache-Managers ab, ruft den erforderlichen Cache vom Manager ab und definiert Schlüssel, anhand derer die Daten entfernt werden sollen.
// Get instance of JCacheManager
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Keys to remove
HashSet set = new HashSet();
set.add("Product:1001");
set.add("Product:1002");
// Removing all keys
jCache.removeAll(set);
Cache löschen
Um den Cache vollständig (im Hintergrund) zu leeren, müssen Sie den aufrufen clear
Methode.
// Get instance of JCacheManager.
CacheManager manager = Caching.getCachingProvider().getCacheManager();
// Get a cache from manager via its string name.
javax.cache.Cache jCache = manager.getCache("demoCache");
// Clear the Cache.
jCache.clear();
Siehe auch
Ereignisbenachrichtigungen im Cache
Hibernate-Caching
NCache Java-Sitzungsmodul