缓存雪崩
2025年01月05日
一、认识
缓存雪崩 是指大量缓存同时失效,导致请求直接穿透到数据库,给数据库带来巨大压力,甚至导致服务宕机。
二、原因
-
大量缓存设置了相同的过期时间。
-
Redis
宕机或不可用。
三、方案
3.1 缓存过期时间分散化
设置随机过期时间,避免大面积缓存同时失效。
示例:EXPIRE key <ttl + random(1,100)>
3.2 多层缓存架构
使用本地缓存(如 Guava
、Caffeine
)作为第一层,Redis
作为第二层,数据库为最终存储。
3.3 熔断与限流
使用限流机制(如令牌桶)控制数据库访问频率,防止雪崩时数据库被压垮。
3.4 Redis 高可用部署
通过主从复制、哨兵模式或集群模式确保 Redis
的高可用性。