Gleitender Ablauf im Cache
NCache ermöglicht Ihnen die Konfiguration des gleitenden Ablaufs, um die Cache-Daten so lange beizubehalten, wie sie von der Anwendung verwendet werden, und alle Daten zu entfernen, die über einen bestimmten Zeitraum nicht verwendet wurden. Dies ist besonders nützlich bei der Aufrechterhaltung von Sitzungen, da jede Sitzung, die über einen bestimmten Zeitraum inaktiv war, als inaktiv gilt und vom Cache entfernt werden kann.
Der gleitende Ablauf stellt sicher, dass die Lebensdauer des Cache-Elements um den Intervallwert verlängert wird, wenn innerhalb des angegebenen Zeitintervalls auf die Daten zugegriffen wird. Beispielsweise wird eine Sitzung mit Ablauf von 10 Minuten hinzugefügt. Auf die Sitzung wird in der 6. Minute zugegriffen, sodass die Lebensdauer der Sitzung im Cache um weitere 10 Minuten verlängert wird.
Voraussetzungen für die Verwendung des gleitenden Ablaufs im Cache
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, CacheItem, CacheItemAttributes, Enthält, Zu Zählen, Ablauf, Insert, Attribute aktualisieren.
Element mit gleitendem Ablaufdatum hinzufügen/aktualisieren
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Sie können die Cache-Elemente hinzufügen/aktualisieren, um das Ablaufdatum festzulegen, indem Sie die verwenden Insert Methode.
CacheItem
ist eine benutzerdefinierte Klasse, die von bereitgestellt wird NCache Damit können Sie Daten zum Cache hinzufügen und zusätzliche Metadaten festlegen, die einem Objekt dieser Klasse zugeordnet sind. Diese Metadaten definieren die Eigenschaften des Elements wie Ablauf, Abhängigkeiten und mehr.
Das folgende Beispiel legt den Wert von fest Expiration
Eigenschaft zu gleitendem Ablauf von 5 Minuten für a CacheItem
und fügt es dem Cache hinzu, wenn der Schlüssel nicht existiert – und aktualisiert das Element, wenn es existiert. Dieses CacheItem wird dann nach 5 Minuten aus dem Cache entfernt.
Tipp
Sie können den Ablauf überwachen/überprüfen durch:
- Zähler „Cache Count“ im NCache Überwachen or PerfMon-Zähler.
- Die richtigen
cache.Contains
nach Ablauf des Ablaufintervalls. - Die richtigen
cache.Count
vor und nach der Angabe des Ablaufs.
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a new CacheItem for this product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.Sliding, TimeSpan.FromMinutes(5));
cacheItem.Expiration = expiration;
// Add/Update item with expiration
cache.Insert(key, cacheItem);
Artikel mit konfigurierten Standardablaufzeiten hinzufügen/aktualisieren
Sie können einen gleitenden Ablauf in der API mithilfe von angeben DefaultSliding
und DefaultSlidingLonger
Werte, die im konfiguriert sind NCache Management Center bzw config.ncconf. Dies bietet die Flexibilität, den Wert bei Bedarf extern zu ändern, ohne den Code zu ändern.
Der folgende Code ordnet den konfigurierten Standardablauf (in diesem Fall „DefaultSliding“) einem Element zu, fügt es dem Cache hinzu, wenn der Schlüssel nicht im Cache vorhanden ist, und aktualisiert das Element mit Ablauf, wenn der Schlüssel vorhanden ist. Wenn innerhalb des konfigurierten Zeitintervalls nicht auf das Element zugegriffen wird, verfällt das Element. Andernfalls verlängert sich die Lebensdauer des Artikels um denselben Zeitraum.
Wichtig
Um den Standardablauf zu aktivieren, müssen Sie ihn unbedingt über aktivieren NCache Management Center oder config.ncconf. Wenn Sie die API für den Standardablauf übergeben und diese nicht über konfiguriert ist NCache Management Center bzw config.ncconf, es wird nicht funktionieren.
// Pre-condition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.Expiration = expiration;
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.Insert(key, cacheItem);
Weitere Informationen
NCache stellt eine Beispielanwendung für Sliding Expiration bereit GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Runtime.Caching Namespace.
Java: com.alachisoft.ncache.runtime.caching Namespace.
Node.js: Ablauf Klasse.
Python: ncache.runtime.caching Klasse.