首页/数据/Redis 进阶速查/热点 Key 击穿:互斥重建与逻辑过期
数据结构与选型42 条

热点 Key 击穿:互斥重建与逻辑过期

热点键失效瞬间大量并发回源:用互斥锁保证只有一个请求重建缓存,其余等待或返回旧值;逻辑过期方案让重建异步进行,请求始终拿得到数据。

Redis 进阶速查数据更新于 2026-10-12
互斥重建SET rebuild:lock NX PX 加二次 GET 确认
逻辑过期value 内带过期时间,过期后异步刷新
兜底快照双 key 加重建锁

互斥重建示意

互斥重建示意
redis-cli SET lock:rebuild:home x NX PX 5000
redis-cli GET home:feed          # 二次确认,仍空则由持锁者回源
redis-cli SET home:feed '{data}' EX 300
逻辑过期示例:value 存 {"expireAt":1730003600,"data":{}},读取发现已过期先返回旧值并触发异步刷新,避免请求等待。

易错点

  • 持锁者崩溃或超时会让重建卡住,锁 TTL 要覆盖回源耗时上限并设置降级路径
  • 互斥重建把并发压到 1,热点每秒万级请求时等待队列会成为瓶颈,宜配合本地缓存

数据来源与参考

  • Redis 官方文档:高并发缓存模式说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌