·更新于 2026年4月21日· 118 次浏览 Redis缓存
Redis 实战:穿透、击穿、雪崩与布隆过滤器
缓存与 DB 之间的典型故障模式及工程对策:空值缓存、互斥重建、随机 TTL、多级缓存与概率型数据结构。
作者
ZHOU YI
缓存穿透指大量请求查询不存在的数据,绕过缓存直击 DB。可对合法不存在结果做短 TTL 空值缓存,或对请求参数做布隆过滤器预判。
击穿与雪崩
- 击穿:热点键过期瞬间并发重建。可用互斥锁(单飞)或逻辑过期 + 异步刷新
- 雪崩:大量键同时过期。TTL 加随机抖动,必要时多级缓存(本地 + Redis)
redis
# 示例:SET key value EX ttl NX 实现简单互斥
SET lock:product:1001 1 EX 10 NXRedis 单线程执行命令,但网络 I/O 与持久化子进程仍会与 CPU、磁盘争用;大 value、热 key、慢命令(KEYS、无上限 SORT)都是线上常见瓶颈。