【redis——缓存雪崩(Cache Avalanche)】
redis——缓存雪崩(Cache Avalanche)
- 缓存雪崩
- 原因分析
- 解决方案
- 1.差异化过期时间
- 2. 高可用设计
- 3. 熔断降级机制
- 4.多级缓存架构
缓存雪崩
缓存雪崩是指在同一时间段内,大量缓存数据同时过期或失效,导致所有请求直接打到数据库上,造成数据库瞬时压力过大甚至崩溃的现象。
原因分析
- 缓存集中过期:大量缓存设置了
相同的过期时间
- 缓存服务器
宕机
:缓存集群整体不可用 - 热点数据失效:关键热点数据突然失效
解决方案
1.差异化过期时间
- 为缓存设置随机的过期时间(如基础时间+随机偏移量)
- 避免大量缓存同时失效
2. 高可用设计
- 缓存集群采用主从、哨兵或集群模式
3. 熔断降级机制
- 当数据库压力过大时,启用降级策略,返回默认值或缓存中的旧数据
- 降级可作为系统的
保底策略
,适用于穿透、击穿、雪崩
4.多级缓存架构
- 使用本地缓存+分布式缓存的多层结构
即使分布式缓存失效,本地缓存仍可缓解压力