TL;DR
Eviction?
Räumung bedeutet auf Japanisch "Vertreibung".
Wenn Sie im Zusammenhang mit dem Caching versuchen, neue Daten zu speichern, die über den Cache hinausgehen, werden Sie mit der Strategie "Welche Daten sollte ich löschen, um mehr Speicherplatz im neuen Cache zu erhalten?" Behandelt. ..
Die Obergrenze, die durch "Überschreiten der Kapazität, die im Cache gehalten werden kann" angegeben wird, ist die Anzahl der Einträge, die im Cache gehalten werden sollen, die Größe des Objekts und die Einstellung der Obergrenze hängt vom Produkt ab, das den Cache verwaltet.
Bitte beachten Sie, dass es sich von Expire unterscheidet.
Wenn Sie sich Wikipedia ansehen, finden Sie ein Beispiel für eine Räumungsrichtlinie.
[Cache-Algorithmus](https://en.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3% 82% A2% E3% 83% AB% E3% 82% B4% E3% 83% AA% E3% 82% BA% E3% 83% A0)
Zum Beispiel LRU, LFU, ARC usw.
LRU(Least Recently Used)
LRU ist ein Algorithmus, der auf die am wenigsten verwendeten Daten zum Löschen abzielt.
Es ist ein sehr bekannter und leicht verständlicher Algorithmus, aber wenn beispielsweise auf die meisten im Cache gespeicherten Daten zugegriffen wird, weil es sich um einen Stapelprozess handelt, ist der Cache möglicherweise nicht sehr effizient.
LFU(Least Frequently Used)
LFU ist ein Algorithmus, der die Häufigkeit des Datenzugriffs beibehält und auf selten verwendete Daten zum Löschen abzielt.
Caffeine
Aus Koffein, einem kürzlich berühmten Ort.
Koffein ist eine Cache-Bibliothek, die von Google Guava Cache inspiriert wurde.
Die in Koffein implementierte Räumungsrichtlinie lautet TinyLFU.
Caffeine uses the Window TinyLfu policy due to its high hit rate and low memory footprint.
Ehcache 3
Zum Zeitpunkt von Ehcache 2 war die Cache-Bibliothek in Java Ehcache, aber jetzt scheint es, dass ich nicht viel darüber gehört habe.
In Ehcache 3 ist die Räumungsrichtlinie weg. Es scheint die Schlussfolgerung zu sein, dass es schwierig ist, Eviction in Situationen, in denen Speicherziele wie Heap und Off-Heap vorhanden sind, effizient zu implementieren.
How to specify ehcache3 eviction strategy when cache is full ?
Um die Zeit von Ehcache 2.x gab es übrigens LRU, LFU und FIFO.
Built-in Memory Store Eviction Algorithms
Selbst mit Ehcache 3 können Sie es anscheinend auf der Persistenz-Ebene steuern, indem Sie einen Räumungsberater erstellen. Dies führt zur Geschichte über das Speicherziel.
Mit anderen Worten, machen wir es uns selbst entsprechend dem Ziel, den Cache-Eintrag zu speichern.
Google Guava Cache
Der letzte ist Google Guava Cache. Jetzt, wo Koffein angekommen ist, dürfen Sie es nicht mehr verwenden.
Im Fall von Guavas Cache können Sie die Räumung nach Größe, Zeit und Referenz festlegen (obwohl es einige gibt, die Räumung sagen, aber ablaufen?).
Von diesen scheint die Verwendung von SoftReference als Referenz ein LRU-Gefühl zu sein.
Ich denke, es ist eine gute Idee, diese Informationen als Ausgangspunkt zu behalten.
Recommended Posts