Cache-Nutzung durchlesen
In diesem Abschnitt wird die Verwendung des Read-Through-Cache-Anbieters nach der Konfiguration und Bereitstellung erläutert. NCache bietet die Alachisoft.NCache.Runtime.Caching.ReadThruOptions
Klasse zum Angeben von Read-Thru-Optionen in der API. Der ReadThruOptions
Klasse enthält Aufzählung ReadMode
, was entweder sein kann ReadThru
or ReadThruForced
, unten erklärt.
ReadThru
prüft, ob ein Element im Cache vorhanden ist, und ruft die Daten aus der Datenquelle ab, wenn es nicht gefunden wird.ReadThruForced
ruft das Element aus einer Datenquelle ab, unabhängig davon, ob es im Cache vorhanden ist oder nicht.
Es können mehrere Read-Through-Cache-Anbieter konfiguriert werden NCache. Der standardmäßige Read-Through-Cache-Anbieter wird aufgerufen, wenn ein bestimmter Anbietername nicht über die API erwähnt wird. Sie können auch andere Anbieter als die Standardanbieter verwenden, indem Sie anbieterspezifische API-Überladungen verwenden.
Wichtig
Für Java müssen Sie vor dem Bereitstellen Ihrer JAR-Dateien Folgendes sicherstellen:
- JDK 17 installiert ist.
- Die Umgebungsvariable für Java ist festgelegt.
Voraussetzungen für die Verwendung des Read-Through-Cache
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache serverseitige Features entnehmen Sie bitte der angegebenen Seite Serverseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: CacheItem, Erhalten Sie , Lesemodus, GetBulk, CacheConnectionOptions, ReadThruOptions.
Verwenden von Read-Through mit Get-Vorgang
Im folgenden Beispiel wird mithilfe von ein Element mit aktiviertem Read-Through abgerufen, das dem angegebenen Schlüssel entspricht Get
Methode.
// Pre-condition: Cache is already connected
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Note
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Verwenden von ForcedRead-Through
NCache bietet die Option des erzwungenen Durchlesens NCache ruft die Daten zwangsweise von der Datenquelle ab. Dies bedeutet, dass die Daten nicht im Cache überprüft werden, sondern direkt von der Datenquelle abgerufen werden. Sie können das erzwungene Durchlesen aktivieren, indem Sie Folgendes angeben ReadMode
as ReadThruForced
.
Das folgende Beispiel ruft mithilfe von ein Element aus dem Cache ab ReadThruForced
Option durch erzwungenes Aktivieren von Read-Through darauf.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThruForced;
// Retrieve the data of the corresponding item with read thru enabled
Product data = cache.Get<Product>(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Verwenden von Read-Through mit Massenvorgängen
Das folgende Beispiel ruft ein Wörterbuch von Produkten mit aktiviertem Read-Through ab, die den angegebenen Schlüsseln entsprechen GetBulk
Methode.
Tipp
Für ein besseres Verständnis dieser Vorgänge überprüfen Massenoperationen.
// Create a new array of keys
String[] keys = new string[];
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the dictionary of Products with corresponding products
IDictionary<string, Product> retrievedItems = cache.GetBulk<Product>(keys, readThruOptions);
// IDictionary contains cached keys and values
Verwenden von Read-Through mit CacheItem
Das folgende Beispiel ruft a ab CacheItem
mit aktiviertem Read-Through, entsprechend dem angegebenen Schlüssel.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
// Retrieve the data of the corresponding item with read thru enabled
CacheItem data = cache.GetCacheItem(key, readThruOptions);
if (data != null)
{
// Perform operations accordingly
}
Verwenden von Read-Through mit Datenstrukturen
Das folgende Beispiel ruft einen Zähler, eine Liste, eine Warteschlange, ein HashSet und ein Wörterbuch mit aktiviertem Durchlesen ab, die dem angegebenen Schlüssel entsprechen.
// Specify the key of the item
string key = $"Product:{product.ProductID}";
// Specify the readThruOptions for read through operations
var readThruOptions = new ReadThruOptions();
readThruOptions.Mode = ReadMode.ReadThru;
switch(mainMenu)
{
case mainMenu.GetDistributedCounter:
// Retrieve the count of the corresponding item with read thru enabled
ICounter counter = cache.DataTypeManager.GetCounter(key, readThruOptions);
break;
case mainMenu.GetDistributedDictionary:
// Retrieve dictionary of the corresponding item with read thru enabled
IDistributedDictionary<string, object> distributedDictionary = cache.DataTypeManager.GetDictionary<string, object>(key,readThruOptions);
break;
case mainMenu.GetDistributedList:
// Retrieve the list of the corresponding item with read thru enabled
IDistributedList<object> distributedList = cache.DataTypeManager.GetList<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedQueue:
// Retrieve the queue of the corresponding item with read thru enabled
IDistributedQueue<object> distributedQueue = cache.DataTypeManager.GetQueue<object>(key, readThruOptions);
break;
case mainMenu.GetDistributedHashSet:
// Retrieve the HashSet of the corresponding item with read thru enabled
IDistributedHashSet<int> distributedHashSet = cache.DataTypeManager.GetHashSet<int>(key, readThruOptions);
break;
}
Konfigurieren Sie den Standard-Durchleseanbieter
Sie können den Standardanbieter über angeben NCache Management Center oder über das client.ncconf Datei. Wenn der Anbietername nicht sowohl in der API als auch in angegeben ist client.ncconf, dann wird automatisch der Standardanbieter verwendet.
<cache id="demoCache" default-readthru-provider="defaultProviderName" client-cache-id="" client-cache-syncmode="optimistic" default-writethru-provider="" load-balance="True">
...
</cache>
CacheConnectionOptions
kann auch zur Angabe von Anbietern verwendet werden. NCache Stellt Fehler in Cache-Protokollen bereit, falls beim Laden der bereitgestellten Assemblys eine Ausnahme auftritt.
Weitere Informationen
NCache stellt eine Beispielanwendung für Read-Through bereit GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Laufzeit Namespace.
Java: com.alachisoft.ncache.runtime.datasourceprovider Namespace.