Redis · 单选题 · 第 44 题
Java 后端开发面试 · 第 44 题
大批缓存 key 设置了相同的过期时间,同一时刻集中失效,导致数据库压力骤增。下列哪项最直接地预防这种情况?
- A用布隆过滤器过滤不存在的 key
- B把所有 key 的名字都改得更长
- C关闭 Redis 的 RDB 和 AOF 持久化
- D在基础过期时间上加一个随机偏移
答案
D D. 在基础过期时间上加一个随机偏移
解析
这是缓存雪崩。过期时间加随机值后,失效时间点被打散,数据库压力就平滑了。其他手段还有多级缓存、热点数据永不过期加异步刷新、限流降级,以及用集群和哨兵防止 Redis 整体宕机。布隆过滤器针对的是缓存穿透。