缓存穿透、缓存击穿、缓存雪崩分别是什么, 怎么解决
题目
缓存穿透、击穿、雪崩分别是什么?怎么解决?
参考答案
- 穿透:查不存在的数据。解法:空值缓存、布隆过滤器
- 击穿:热点 key 过期瞬间被打爆。解法:互斥锁、不过期、预热
- 雪崩:大量 key 同时过期或缓存整体故障。解法:随机过期、多级缓存、限流降级
这三个问题本质上都是数据库兜底压力过大,但成因不同。
回答展开
- 缓存题建议按原理、风险、治理方案三个层次展开。
- 如果涉及集群或高可用,要明确 Redis 更偏最终一致而不是强一致。
- 如果涉及缓存问题,最好把穿透、击穿、雪崩的成因和治理手段区分开。
实际场景
比如商品详情缓存、用户会话缓存、配置缓存是 Redis 的典型使用场景;一旦出现缓存失效、热点集中或删除失败,就需要完整的治理策略。