缓存——LRU与LFU优劣(简介)

LRU(最近最久未使用)

适用于:局部突发流量场景,实现简单
缺点:
对短发周期性(短发冷数据)的数据没有抵抗力,容易缓存污染。比如某些缓存长期稳定地被查询,但是突发的数据访问会导致这些缓存被移除,而突发数据未来不再使用,这就造成缓存污染。
改进的算法有LRU-K、TwoQueues

LFU(最近很少使用)

一个数据最近使用次数少,则可能被替换。
缺点:

  1. 额外的访问频率记录访问频率更新的开销。
  2. 局部突发流量场景造成污染。前期常访问的缓存被替换掉,而突发的数据长期保存在缓存中不被替换,而它未来不会被访问却一直占据着缓存。

Redis 过期策略和内存淘汰策略

过期策略:惰性删除、定期删除
内存淘汰策略则有8种:no-eviction,allkeys-lru,allkeys-lfu,allkeys-random,volatile-lru,volatile-lfu,volatile-ttl,volatile-random

区别

触发时机 影响的key
过期策略 访问key、正常运行时触发 设置了过期时间的key
内存淘汰策略 内存达到maxmemory时触发 设置了过期时间或者所有的key
posted @ 2025-05-17 11:50  Nammonco  阅读(41)  评论(0)    收藏  举报