redis内存淘汰算法

算法类型:

volatile-lru :设置了过期时间的key使用LRU算法淘汰;
allkeys-lru :所有key使用LRU算法淘汰;
volatile-lfu :设置了过期时间的key使用LFU算法淘汰;
allkeys-lfu :所有key使用LFU算法淘汰;
volatile-random :设置了过期时间的key使用随机淘汰;
allkeys-random :所有key使用随机淘汰;

LRU算法(least recently use)

一组数据中,对最近没有使用或者使用距离目前时间最久远的数据进行删除淘汰:
核心思想: 如果一个数据最近有被访问到,在未来其很大概率也可能被访问到;
缺点: 如果一个热点数据,和一个冷门数据,热点数据以前被访问很多次,最近冷门数据被访问了,而热门数据有一段时间没有被访问,按照lru算法来看,会把热点数据删掉,这明显不合理
LRU算法的常见实现方式为链表:
新数据放在链表头部 ,链表中的数据被访问就移动到链头,链表满的时候从链表尾部移出数据。

LFU算法(least frequently used)

频繁使用的保留,使用次数最少的删除,表示最不经常使用,它是根据数据的历史访问频率来淘汰数据list的每个节点维护一个使用次数
核心思想: 如果数据过去被访问多次,那么将来被访问的频率也更高
LFU算法反映了一个key的热度情况,不会因LRU算法的偶尔一次被访问被误认为是热点数据。
LFU算法的常见实现方式为链表:
新数据放在链表尾部 ,链表中的数据按照被访问次数降序排列,访问次数相同的按最近访问时间降序排列,链表满的时候从链表尾部移出数据。

总结:

LRU: 优先淘汰时间距离现在最久远的key
LFU: 优先淘汰使用次数最少的key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值