Skip to content

题目13:缓存穿透、击穿、雪崩 ​

📊 评分:— | 📅 完成时间:待完成


📝 题目 ​

请分别解释缓存穿透、缓存击穿、缓存雪崩是什么。它们的区别是什么?在项目里通常怎么治理?


💬 我的回答 ​


📖 参考答案 ​

一、缓存穿透 ​

  • 查询一个数据库中本来就不存在的数据
  • 缓存永远 miss,请求持续打到数据库

治理方式:

  • 缓存空值
  • 布隆过滤器
  • 参数校验

二、缓存击穿 ​

  • 某个热点 key 失效瞬间,大量请求同时打到数据库

治理方式:

  • 热点 key 永不过期
  • 互斥锁 / singleflight
  • 提前预热

三、缓存雪崩 ​

  • 大量 key 在同一时间失效
  • 或缓存服务整体不可用

治理方式:

  • 过期时间加随机值
  • 多级缓存
  • 限流降级
  • Redis 高可用

🎯 面试标准话术 ​

"穿透是查不到,击穿是热点 key 过期,雪崩是大面积失效或缓存整体故障。三者都可能把流量打到数据库,但成因和治理手段不同,面试时最好分别举例。"

努力工作 享受生活