现象

热点 key 或 恶意随机 ID 查询导致 DB 被打爆;或缓存集体过期瞬间 雪崩

根因

  • 穿透:key 根本不存在,缓存也 miss,每次穿透到 DB。
  • 击穿:热点 key 过期瞬间大量请求打 DB。
  • 雪崩:大量 key 同时过期

常见踩坑

  • 对不存在 key 不缓存(应短期缓存 空值 或返回哨兵)。
  • TTL 全设同一时刻,无人为抖动。

解决

  • 穿透:布隆过滤器空值缓存(短 TTL);非法输入前置校验。
  • 击穿:互斥锁重建、热点永不过期+异步刷新、单飞(singleflight)。
  • 雪崩:TTL 加随机抖动、多级缓存、限流。

总结

三件套分清名词:穿透查不到、击穿热 key、雪崩集体过期——对策不一样。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐