TL;DR
Eviction?
Expulsion signifie «expulsion» en japonais.
Dans le contexte de la mise en cache, lorsque vous essayez de stocker de nouvelles données au-delà de ce que le cache peut contenir, vous êtes traité avec la stratégie "Quelles données dois-je effacer pour obtenir plus d'espace à stocker dans le nouveau cache?" ..
La limite supérieure indiquée par «dépassement de la capacité pouvant être conservée dans le cache» est le nombre d’entrées à conserver dans le cache, la taille de l’objet et le paramètre de la limite supérieure varie en fonction du produit qui gère le cache.
Veuillez noter qu'il est différent de Expire.
Si vous regardez Wikipédia, vous trouverez un exemple de politique d'expulsion.
[Algorithme de cache](https://ja.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)
Par exemple, LRU, LFU, ARC, etc.
LRU(Least Recently Used)
LRU est un algorithme qui cible les données les moins utilisées pour la suppression.
C'est un algorithme très célèbre et facile à comprendre, mais par exemple, dans le cas de l'accès à la plupart des données stockées dans le cache car il s'agit d'un traitement par lots, il peut ne pas être une utilisation très efficace du cache.
LFU(Least Frequently Used)
LFU est un algorithme qui maintient la fréquence d'accès aux données et cible les données rarement utilisées pour la suppression.
Caffeine
De Caffeine, un endroit récemment célèbre.
Caffeine est une bibliothèque de cache inspirée de Google Guava Cache.
La politique d'expulsion mise en œuvre dans la caféine est TinyLFU.
Caffeine uses the Window TinyLfu policy due to its high hit rate and low memory footprint.
Ehcache 3
À l'époque d'Ehcache 2, la bibliothèque de cache en Java était Ehcache, mais maintenant il semble que je n'en ai pas beaucoup entendu parler.
Dans Ehcache 3, la politique d'expulsion a disparu. Cela semble être la conclusion qu'il est difficile d'implémenter efficacement l'expulsion dans les situations où il existe des destinations de stockage telles que le tas et hors tas.
How to specify ehcache3 eviction strategy when cache is full ?
À propos, à l'époque d'Ehcache 2.x, il y avait LRU, LFU et FIFO.
Built-in Memory Store Eviction Algorithms
Même avec Ehcache 3, il semble que si vous créez un conseiller d'expulsion, vous pouvez le contrôler au niveau de la couche de persistance. Cela mène à l'histoire de la destination de sauvegarde.
En d'autres termes, créons-le nous-mêmes en fonction de la destination où l'entrée du cache est enregistrée.
Google Guava Cache
Le dernier est Google Guava Cache. Maintenant que la caféine est arrivée, vous ne pouvez plus l'utiliser.
Dans le cas de Guava's Cache, vous pouvez définir l'expulsion par taille, heure et référence (bien qu'il y en ait qui disent expulsion mais expirent?).
Parmi ceux-ci, utiliser SoftReference comme référence semble être un sentiment LRU.
Je pense que c'est une bonne idée de garder ces informations comme point de départ.
Recommended Posts