缓存在生产环境的第一杀手
在Redis RDB vs AOF持久化一文中我们讨论了数据可靠性。缓存失效才是线上可用性的核心因素。
场景一:缓存击穿
Object value = redis.get(key);\nif (value == null) {\n synchronized(this) { value = redis.get(key); }\n}
场景二:缓存穿透 — 布隆过滤器
if (!bloom.mightContain(key)) return null;
场景三:缓存雪崩 — 随机TTL
redis.setex(key, baseTtl + randomOffset(0,300), value);
关键要点
- 击穿 → 互斥锁
- 穿透 → 布隆过滤器 + 空值缓存
- 雪崩 → 随机TTL + 多级缓存




