Absoluter Datenablauf im Cache
NCache ermöglicht Ihnen die Konfiguration des absoluten Ablaufs für Ihre Cache-Elemente. Dadurch verfallen die Artikel genau zu dem vom Kunden angegebenen Datum und Zeitpunkt. Für Elemente, die für eine begrenzte Zeit im Cache benötigt werden, kann ein absolutes Ablaufdatum angegeben werden. Beispielsweise kündigt ein Unternehmen einen 24-Stunden-Flash-Sale für bestimmte Produkte an. Diese Artikel können dann mit einem absoluten Ablaufdatum von 24 Stunden zwischengespeichert werden, sodass sie aus dem Cache ablaufen, sobald der Verkauf endet.
Darüber hinaus DateTime
Wert umgewandelt wird UTC-Zeit um den Fall zu berücksichtigen, dass sich Cache-Server und Client in unterschiedlichen Zeitzonen befinden. Die Artikel verfallen also genau zu dem vom Benutzer angegebenen Zeitpunkt.
Voraussetzungen:
- 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.
Artikel mit absolutem Ablaufdatum hinzufügen/aktualisieren
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Sie fügen die Cache-Elemente hinzu bzw. aktualisieren sie, um den Ablauf festzulegen 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
Die Eigenschaft „Absolute Expiration“ von 5 Minuten für ein CacheItem fügt es dem Cache hinzu, wenn der Schlüssel nicht vorhanden ist – und aktualisiert das Element, wenn es vorhanden ist. Das 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.Absolute, 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 den absoluten Ablauf in der API mithilfe von angeben DefaultAbsolute
und DefaultAbsoluteLonger
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 „DefaultAbsolute“) 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. Sobald die konfigurierte Zeit abgelaufen ist, ist der Artikel abgelaufen.
Wichtig
Um den Standardablauf zu aktivieren, müssen Sie ihn unbedingt über aktivieren NCache Management Center or config.ncconf. Wenn Sie die API für > [!IMPORTANT] übergeben und sie nicht über konfiguriert wird NCache Management Center bzw config.ncconf, es wird nicht funktionieren.
// 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 cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration type
var expiration = new Expiration(ExpirationType.DefaultAbsolute);
cacheItem.Expiration = expiration;
// Add/Update item into the cache with default expiration
CacheItemVersion version = cache.Insert(key,cacheItem);
Legen Sie den absoluten Ablauf auf den vorhandenen Artikel fest
Note
Diese Funktion ist auch in verfügbar NCache Professional.
NCache Bietet außerdem die Flexibilität, den absoluten Ablaufwert für ein vorhandenes Cache-Element festzulegen, ohne es erneut in den Cache einfügen zu müssen. Dies geschieht durch die CacheItemAttribute
Klasse, die das hat AbsoluteExpiration
-Eigenschaft, die für das Cache-Element festgelegt werden soll. Dadurch wird das genaue Datum und die Uhrzeit festgelegt, zu der das Element aus dem Cache ungültig gemacht werden soll. Das Attribut wird dann mit dem vorhandenen Schlüssel des Elements verglichen UpdateAttributes
Methode von ICache
.
Das folgende Beispiel legt den absoluten Ablauf für ein Element fest, das bereits im Cache vorhanden ist und für den kein Ablauf festgelegt ist. Dies erfordert kein erneutes Hinzufügen oder erneutes Einfügen des Elements in den Cache.
// Precondition: Cache is already connected
// Precondition: Item already exists in cache
string key = "Product:1001";
// Create a CacheItemAttribute for absolute expiration
// and set its value to 5 seconds
var attr = new CacheItemAttributes();
attr.AbsoluteExpiration = DateTime.Now.AddSeconds(5);
// Set Absolute Expiration of 5 seconds against existing key
cache.UpdateAttributes(key, attr);
Weitere Informationen
NCache stellt eine Beispielanwendung für den absoluten Ablauf 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.