Im Alltag haben Sie sicher schon einmal erlebt, dass eine Packung Milch länger als eine Weile im Kühlschrank stand und Sie vergessen haben, sie wegzuwerfen. Was dann passiert, ist, dass Sie abgestandene Milch in Ihrem Kühlschrank haben, die Platz wegnimmt, nutzlos ist und beim Verzehr nur schädlich sein kann. Ebenso sollten Ihre Daten im Cache mit einem Ablaufdatum versehen sein. Alle Daten, die längere Zeit in Ihrem Cache aufbewahrt werden, veralten (wie die Milch), sind nutzlos und belegen nur Platz in Ihrem Cache. Und die Lösung ist in beiden Fällen ähnlich: schmeiss es weg!
In diesem Blog geht es darum, die Ablaufstrategien zu erläutern, um die Daten in Ihrem Cache aktuell zu halten und veraltete Daten zu löschen.
Ablauf der Cache-Daten: Die Notwendigkeit und das Konzept
Nehmen wir an, Sie betreiben eine E-Commerce-Website und haben die Informationen zu diesen Produkten im Cache hinzugefügt. Die Produktinformationen bleiben über einen langen Zeitraum unverändert im Cache erhalten. Aus irgendeinem Grund wurden nun jedoch die Preise einiger Produkte in der Datenquelle aktualisiert. In diesem Fall kommt es zu Dateninkonsistenzen, weil Ihre Kunden immer noch die älteren Preise sehen, bei denen es sich eigentlich um veraltete zwischengespeicherte Daten handelt.
NCache bietet einen Ablauf, bei dem Sie ein Zeitlimit für Ihre Daten festlegen können. Sobald das Limit erreicht ist, sind die Daten nicht mehr gültig. Ungültige Daten müssen nach einer vordefinierten Zeit aus dem Cache entfernt werden Reinigungsintervall. Dabei handelt es sich um ein (von Ihnen festgelegtes) Intervall, nach dem alle abgelaufenen Elemente automatisch aus dem Cache entfernt werden. Daher werden abgelaufene Elemente nicht sofort aus dem Cache entfernt.
Datenablauf in NCache NCache Details
Arten des Ablaufs in NCache
NCache bietet die folgenden Strategien, um den Anforderungen des Benutzers gerecht zu werden:
- Absoluter/standardmäßiger absoluter Ablauf
- Gleitender/standardmäßiger gleitender Ablauf
Wir werden uns beide Typen und ihre Verwendung genauer ansehen.
Absoluter Ablauf
Bei dieser Strategie wird mit dem Element, das ungültig gemacht werden muss, eine absolute Zeit angegeben. Die angegebene Zeit wird auf der beibehalten UTC Daher wird die in einer beliebigen Zone angegebene Zeit auf dem Cache-Server in das UTC-Zeitformat konvertiert. Die Zeit kann zwischen variieren Sekunden bis Stunden bis Tage bis Monate, und nach Ablauf der Zeit wird der Artikel ungültig oder ist abgelaufen. Schauen Sie sich zur Verdeutlichung Abbildung 1 an:
Anwendungsfall: Für Fälle, in denen Sie abschätzen können, wie lange ein Element im Cache verbleiben muss. Wenn beispielsweise ein zeitlich begrenztes Produkt auf den Markt kommt und nach 24 Stunden nicht verkauft werden kann, wird der Artikel mit einem absoluten Ablauf von 24 Stunden hinzugefügt und danach läuft das Produkt aus dem Cache ab.
Schauen wir uns das Codebeispiel an, das zeigt, wie ein Element zum Cache hinzugefügt wird, das nach 5 Minuten abläuft.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 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 new CacheItem for this product with expiry var cacheItem = new CacheItem(product); var expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(5)); cacheItem.Expiration = expiration; cache.Insert(key, cacheItem); |
Gleitender Ablauf
Wie der Name schon sagt, behält diese Strategie die Daten im Cache, solange sie verwendet werden. Daher werden die Daten, die eine bestimmte Zeit lang nicht verwendet wurden, ungültig. Jedes Mal, wenn auf mit gleitendem Ablauf hinzugefügte Daten zugegriffen wird, verlängert sich die Dauer, die diese Daten im Cache verbleiben. Wenn beispielsweise auf ein Element mit einem gleitenden Intervall von 30 Sekunden 30 Sekunden lang nicht zugegriffen wird, ist es abgelaufen. Wenn innerhalb von 30 Sekunden darauf zugegriffen wird, wird die Lebensdauer des Elements im Cache ebenfalls um weitere 30 Sekunden überschritten.
Anwendungsfall: Nehmen wir an, Sie verfügen über eine Anwendung, die für den Zugriff die Anmeldeinformationen des Benutzers benötigt. Sie möchten dem Benutzer Zugriff gewähren, solange der Benutzer aktiv ist und die Anwendung verwendet. Der gleitende Ablauf hilft Ihnen in solchen Fällen, in denen die Sitzung aufrechterhalten werden kann, indem die aktiven Benutzer im Auge behalten werden.
Im unten aufgeführten Beispiel wird dem Produkt ein gleitender Ablauf von 5 Minuten hinzugefügt:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 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 with expiry var cacheItem = new CacheItem(product); var expiration = new Expiration(ExpirationType.Sliding, TimeSpan.FromMinutes(5)); cacheItem.Expiration = expiration; cache.Insert(key, cacheItem); |
Räumung in NCache Absoluter Ablauf Gleitender Ablauf
Standardablaufstrategien
NCache Sie können außerdem ein Standardablaufdatum hinzufügen, um sich den Aufwand für die manuelle Konfiguration zu ersparen. Diese können nur über konfiguriert werden NCache Web Manager oder Konfigurationsdateien (später im Blog angezeigt). Im Folgenden sind die Standardwerte aufgeführt:
- Standardmäßig absolut
- Standardmäßig gleitend
- Standardmäßig absolut länger
- Standardmäßig länger gleiten
Die Standardwerte betragen standardmäßig 5 Sekunden für alle Ablaufstrategien. Bitte beziehen Sie sich auf Standardablauf ausführlich erklärt NCache Dokumentation.
Konfigurieren Sie den Ablauf mit NCache Web Manager
Mit können Sie den Ablauf aktivieren und die Dauer festlegen NCache Webmanager. Lassen Sie mich Ihnen zeigen, wie:
Konfigurieren Sie den Ablauf mithilfe von Konfigurationsdateien
Sie können auch das Ablaufdatum aktivieren NCache mithilfe der Konfigurationsdatei (config.ncconf), das installiert ist NCache standardmäßig im Installationsverzeichnis. Unter dem Tag, es gibt ein Tag wie unten gezeigt:
1 2 3 4 5 |
<expiration-policy enabled="True"> <absolute-expiration longer-enabled="False" longer-value="5" default-enabled="False" default-value="30"/> <sliding-expiration longer-enabled="False" longer-value="5" default-enabled="False" default-value="20"/> </expiration-policy> |
Ebenso können Sie das Bereinigungsintervall angeben, nach dem die abgelaufenen Elemente aus dem Cache entfernt werden, wie unten gezeigt:
1 2 3 |
<cache-settings ... > <cleanup interval="15sec"/> </cache-settings> |
Massenentfernung abgelaufener Artikel
Alle abgelaufenen Elemente im Cache werden in großen Mengen entfernt, um Leistungseinbußen durch das Entfernen einzelner Elemente zu vermeiden. Sie können jedoch die Massengröße der zu entfernenden Elemente sowie die Verzögerung zwischen zwei aufeinanderfolgenden Massenentfernungen abgelaufener Daten konfigurieren. NCache kommt mit einem Alachisoft.NCache.Service.exe.config Datei im Installationsverzeichnis von abgelegt NCache und verfügt über die folgenden konfigurierbaren Tags:
1 2 |
<add key="NCacheServer.ExpirationBulkRemoveSize" value="10"/> <add key="NCacheServer.ExpirationBulkRemoveDelay" value="0"/> |
Konfigurieren des Datenablaufs Ablauf & Räumung
Wissenswertes
- Wenn ein Element ohne Ablaufdatum (absolut oder gleitend) zum Cache hinzugefügt wird, bleibt es für immer im Cache, bis es manuell entfernt wird.
- Sie müssen das neu starten NCache Dienst, nachdem Sie mithilfe der Konfigurationsdateien etwas konfiguriert haben, damit die Änderung wirksam wird.
- In NCache, Ablauf funktioniert in Bezug auf verschiedene Topologien unterschiedlich, alles wird ausführlich in erklärt Ablauf in einer Cluster-Umgebung.
Zusammenfassend!
Alles, was wir bisher besprochen haben, läuft also auf die Tatsache hinaus, dass veraltete Daten in Ihrem Cache effizient verwaltet werden müssen, und der Ablauf ist der richtige Weg, dies zu tun. Dabei handelt es sich um eine Technik, bei der Daten aus dem Cache gelöscht werden, basierend auf der von Ihnen bereitgestellten Technik. NCache hilft Ihnen, mit diesen Dingen problemlos umzugehen.