Skip to content

缓存策略 ​

缓存模式 ​

Cache-Aside(旁路缓存) ​

查询:
1. 查缓存
2. 缓存不存在,查数据库
3. 写入缓存
4. 返回数据

更新:
1. 更新数据库
2. 删除缓存

Write-Through(穿透写) ​

更新时同时写缓存和数据库

Write-Behind(后写) ​

更新时先写缓存,异步写数据库

Redis淘汰策略 ​

触发条件 ​

maxmemory < 实际使用内存

策略配置 ​

策略说明
noeviction不淘汰,返回错误
volatile-lru只淘汰设置了过期时间的键(LRU)
allkeys-lru所有键LRU淘汰
volatile-lfu只淘汰设置了过期时间的键(LFU)
allkeys-lfu所有键LFU淘汰
volatile-random随机淘汰过期键
allkeys-random随机淘汰所有键
volatile-ttl淘汰TTL最小的键

LRU vs LFU ​

LRU(Least Recently Used) ​

最近最少使用,淘汰最久未访问的。

LFU(Least Frequently Used) ​

最不经常使用,淘汰访问频率最低的。

选择 ​

  • 访问频率稳定:LFU
  • 访问模式波动大:LRU
  • Redis 4.0+推荐LFU

最后更新: