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

最后更新: