缓存雪崩与解决方案
面试官问:"什么是缓存雪崩?"
小陈说:"就是缓存崩了?"
面试官追问:"如果 Redis 挂了,所有请求都打到数据库,会怎样?"
小陈说:"...数据库也崩了?"
面试官继续追问:"怎么防止这种情况?"
小陈答不上来。
缓存雪崩是 Redis 面试中的高频问题。这道题能说清楚"雪崩 vs 击穿"的区别,以及多重防护方案的候选人,对 Redis 的高可用架构有实战理解。
一、缓存雪崩的定义 🔴
1.1 两种雪崩场景
1.2 雪崩 vs 击穿
1.3 ❌ 错误示范
候选人原话:"雪崩就是击穿,热点 key 过期了就是雪崩。"
问题诊断:混淆了两个概念。击穿是单个热点 key,雪崩是大量 key 同时失效(或者 Redis 不可用)。
【面试官心理】 这道题我会从"击穿和雪崩的区别"追问。能说清楚"击穿是单个,雪崩是大量"的候选人,说明他对缓存问题有系统理解。
二、过期时间随机化 🔴
2.1 解决方案
2.2 批量导入时的处理
三、多级缓存架构 🟡
3.1 本地缓存 + Redis
3.2 限流保护
四、Redis 高可用 🟡
4.1 Redis Sentinel(哨兵)
4.2 Redis Cluster
【面试官心理】 缓存雪崩的解决方案需要从多个层面考虑:过期时间、限流、高可用。能说出完整方案的候选人,说明他对 Redis 的生产架构有系统理解。