加载中...

缓存击穿(hotspot invalid)指一个被高并发访问的热点键在缓存中过期的瞬间,大量请求同时未命中并涌向数据库重建缓存,形成对单点数据的「打穿」效应,可能瞬间压垮存储层。
它针对的是「单个热点键过期」;缓存雪崩是大面积键同时失效或缓存整体不可用;缓存穿透则是查询根本不存在的数据。
主流做法有三种:一是互斥重建——未命中时先抢分布式锁或本地锁,只有拿到锁的请求回源重建,其余请求短暂等待或返回旧值,应用层的 singleflight、Nginx 的 proxy_cache_lock 都是此思路;二是逻辑过期——缓存值永不物理过期,内部附带过期时间字段,发现逻辑过期后由单个异步任务刷新,读请求始终有值可返回;三是热点键永不过期加主动更新,由后台任务定时重建。
热点商品详情、首页配置等读多写少的数据最易发生击穿,通常结合多级缓存与请求合并综合防护。

登录 后参与讨论
暂无讨论,来发表第一条评论吧