手書きRedisでの期限切れポリシーのLRUアルゴリズム
3412 ワード
/**
* LRU
*
* @author liyue
* @date 2020-03-04 00:32
*/
public class LRUCache<K, V> extends LinkedHashMap<K, V> {
private final int CACHE_SIZE = 100;
// cacheSize
public LRUCache(int cacheSize) {
// hashmap , true linkedHashMap , , 。
super((int) Math.ceil(cacheSize / 0.75) + 1, 0.75f, true);
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
// , ,
return size() > CACHE_SIZE;
}
}
Redisのメモリ淘汰アルゴリズムにはLRUアルゴリズムがあります.たとえば、allkeys-lru:新しい書き込みを許容するメモリが不足している場合は、キースペースで、最近使用したkeyの最小使用量を削除します.
私のここのLRUアルゴリズムは石杉先生が提供したものです.