中间件速查手册
缓存与 KV 存储Cache Avalanche

缓存雪崩 是什么?

大批 key 同时失效或缓存集群挂掉,流量全压到数据库

类比:整栋楼同时停电,所有人一起走楼梯

两种成因

一是大批 key 设了相同的过期时间(比如凌晨统一预热、统一 24 小时过期),到点集体失效;二是 Redis 集群宕机,所有缓存同时不可用。

怎么防

核心思路:不要让失效同时发生,也不要让数据库独自承受全部流量。

  • 过期时间加随机抖动:30 分钟 ± 5 分钟
  • 多级缓存:本地 Caffeine + Redis,Redis 挂了本地还能顶一阵
  • 限流降级:数据库前加熔断,宁可拒绝部分请求也不让库崩
  • Redis 高可用:哨兵或 Cluster,主从自动切换
  • 缓存预热:启动或低峰期主动加载热点数据

别忘了演练

很多团队配了高可用但从没验证过。定期做一次「手动 kill 主节点」的演练,比配置写得多漂亮都有用。

它出现在这些中间件里

相关概念