高并发下的缓存策略?

发布于

一、缓存层级

  • L1:浏览器缓存。
  • L2:CDN 缓存。
  • L3:Nginx/网关缓存。
  • L4:应用本地缓存(Caffeine、Guava)。
  • L5:分布式缓存(Redis)。
  • L6:数据库。

二、缓存更新策略

  • Cache Aside:应用先查缓存,没有查数据库,写入缓存。删除缓存(不是更新)。最常用。
  • Read/Write Through:缓存层统一处理读写。
  • Write Behind:异步写回数据库,性能高但可能丢数据。

三、热点数据

  • 热点 key 永不过期 + 逻辑过期 + 异步刷新。
  • 本地缓存挡热点,减少 Redis 压力。

四、缓存一致性

  • 延迟双删:更新数据库 → 删缓存 → 延迟 500ms → 再删缓存。
  • 订阅 binlog(canal)异步删缓存。
  • 最终一致即可,不追求强一致。

五、缓存穿透/击穿/雪崩

见 Redis 相关题目。