Der Spruch „640 KB sollten für jeden reichen“ war früher weit verbreitet. Es gibt einige Meinungsverschiedenheiten darüber, wer es gesagt hat, aber es besteht jetzt allgemeine Einigkeit darüber, dass niemand jemals wissen kann, was „genug“ in der Informatik bedeutet.
Aus diesem Grund müssen Sie einige zwischengespeicherte Daten löschen oder entfernen, wenn Sie Ihre Caches mit einer Schätzung der Datenmenge einrichten, die sie speichern können. Ohne Räumung, wenn der Cache voll ist, werden keine eingehenden Anforderungen zum Hinzufügen von Daten akzeptiert, da keine Daten aus dem Cache entfernt werden.
Figure 1 erklärt dies in einer einfachen Illustration:
Wenn die Räumung aktiviert ist, entfernt Ihr Cache die Daten basierend auf der Nutzung oder der Priorität im Vergleich zu anderen Cache-Elementen. Dadurch wird Platz für eingehende Daten frei, die dem Cache hinzugefügt werden können, sobald ältere Elemente/Elemente mit geringerer Priorität aus dem Cache entfernt werden. Figure 2 veranschaulicht dies zur Verdeutlichung.
Wir werden darüber diskutieren, wie NCache unterstützt und verwaltet verschiedene Räumungsrichtlinien und wie sie im Cache aktiviert werden können.
NCache Details Räumung konfigurieren – NCache Docs NCache Client-API-Dokumente
Räumungsrichtlinien in NCache
NCache bietet verschiedene Arten der Räumung, um jedem Anwendungsfall gerecht zu werden.
Zuletzt verwendet (LRU)
Eine der am häufigsten verwendeten Räumungsrichtlinien ist LRU. Diese Entfernungsrichtlinie ermöglicht es Caches, die ältesten Cache-Elemente zu entfernen, die im Vergleich zu den Elementen, auf die kürzlich zugegriffen wurde, lange Zeit nicht verwendet wurden. Die Daten werden basierend auf der letzten Zugriffszeit entfernt. Die Zugriffszeit wird als Zeitstempel für jedes Cache-Element aktualisiert, wenn es entweder aus dem Cache abgerufen oder im Cache aktualisiert wird.
Angenommen, Ihr Cache enthält Daten für Produkte, die von Kunden angesehen werden. Sobald Ihr Cache fast voll ist, ist es sinnvoll, die Produkte zu entfernen, die längere Zeit nicht angesehen wurden.
Am wenigsten häufig verwendet (LFU)
Diese Entfernungsrichtlinie entfernt weniger häufig verwendete Cache-Elemente. Im LFU Daten werden basierend auf der Häufigkeit ihrer Verwendung/Anzahl der Treffer für das Element entfernt. Wenn beispielsweise fünfmal auf ein Element zugegriffen wird, ist es ein geeigneterer Kandidat für eine Räumung als ein Element, auf das 5-mal zugegriffen wird. Dies ist nützlich für Szenarien, in denen ein heiß verkaufter Artikel von Kunden angezeigt wird und Sie den Cache leeren müssen. Die Räumung eines Artikels, auf den nicht so oft zugegriffen wurde, wie auf den meistverkauften Artikel, wird Ihre Benutzererfahrung nicht beeinträchtigen.
Prioritätsbasierte Räumung
Prioritätsbasierte Räumung entfernt weniger wichtige Daten zuerst aus dem Cache. Wenn Sie Ihre Cache-Daten priorisieren können, muss diese Entfernungsrichtlinie übernommen werden, um eine bessere Kontrolle darüber zu haben, wie Daten entfernt werden. Die Priorität wird beim Hinzufügen des Cache-Elements zum Cache angegeben. Sie können eine beliebige Priorität aus den folgenden Prioritätsebenen festlegen:
- Sneaker
- Niedriger als normal
- Normal
- Above Normal
- High
- Nicht entfernbar – Diese Prioritätsstufe gibt an, dass das Cache-Element nicht entfernt werden soll und nur mit konfiguriert werden kann NCache API.
So können Sie ganz einfach die Priorität jedes Elements festlegen, während Sie es zum Cache hinzufügen:
1 2 3 4 5 6 7 8 9 |
Product product = FetchProductFromDB(1001); string key = $"Product:{product.ProductID}"; CacheItem cacheItem = new CacheItem(product) { Priority = CacheItemPriority.High }; cache.Add(key, cacheItem); |
NCache Details Räumung konfigurieren – NCache Docs NCache Client-API-Dokumente
Massenentfernung von Räumungsgegenständen
Bei der Räumung werden Elemente in großen Mengen entfernt, sodass die Leistung nicht durch die einzelne Räumung von Elementen beeinträchtigt wird. NCache Bietet Ihnen die Möglichkeit, die Massengröße und die Verzögerung zwischen zwei aufeinanderfolgenden Massenräumungen entsprechend Ihren Anforderungen anzupassen.
Im Alachisoft.NCache.Service.exe.config Datei in %NCHOME%/bin/service, können Sie diese Einstellungen über die folgenden Tags konfigurieren. Weitere Einzelheiten finden Sie in der Dokumentation zu Konfigurieren der Eviction-Einstellungen.
Massengröße für die Ausweisung
Sie können die Anzahl der Elemente angeben, die in einem Massenaufruf entfernt werden sollen.
1 |
<add key="NCacheServer.EvictionBulkRemoveSize" value="1000"/> |
Verzögerung der Räumungsmassenentfernung
Sie können die Verzögerung (in Sekunden) zwischen den Räumungsaufrufen wie hier gezeigt angeben. Ein Wert von Null würde bedeuten, dass die Räumung nicht verzögert wird und die Elemente weiterhin geräumt werden.
1 |
<add key="NCacheServer.EvictionBulkRemoveDelay" value="5"/> |
Aktivieren Sie die Räumung über Web Manager
Sie können die Räumung durch eine Reihe weniger einfacher Schritte aktivieren. Sobald Sie die Räumung aktiviert haben, können Sie das Räumungsverhältnis (den Prozentsatz der gesamten Cache-Größe, der geräumt werden soll) anpassen und die Richtlinie und Priorität angeben.
Aktivieren Sie die Eviction über Konfigurationsdateien
Sie können die Räumung auch durch Änderungen in der Cache-Konfigurationsdatei konfigurieren (config.ncconf). Unter dem <cache-settings>
Tag, fügen Sie Folgendes hinzu <eviction-policy>
tag:
1 2 3 |
<cache-settings ...> <eviction-policy enabled="True" default-priority="normal" policy="priority" eviction-ratio="5%"/> </cache-settings> |
NCache Details Räumung konfigurieren – NCache Docs Editionsvergleich
Räumung in Cluster-Umgebung
- Sobald die Räumung aktiviert ist, wird die Räumung von intelligent gehandhabt NCache in jeder Cache-Topologie:
- Partitionierter/Partition des Replikat-Cache: In Partitioniert und Partition der Replik Da jeder Knoten über eine Datenpartition verfügt, ist jeder Knoten dafür verantwortlich, seine eigenen Daten zu entfernen. Für den Replikatknoten in der Replikatpartition werden Daten automatisch entfernt, wenn sie vom aktiven Knoten entfernt werden.
- Replizierter Cache: In Repliziert In der Topologie verfügt jeder Knoten über denselben Datensatz, sodass nur der Clusterkoordinator für die Räumung verantwortlich ist.
- Spiegelcache: In Spiegel Cache ist der aktive Knoten für die Räumung des gesamten Caches verantwortlich.
Zusammenfassung
Damit Cache-Vorgänge ohne Unterbrechung auf den Cache angewendet werden können, müssen Sie sicherstellen, dass Ihr Cache aktuelle Daten speichert und alle unerwünschten Daten entfernt. Hier kommt die Räumung ins Spiel. Die Konfiguration der Räumung ist einfach, der Rest wird von erledigt NCache sich.