热 Key 与热点数据

部分键承载远高于均值的流量:缓存层会形成单分片热点,数据库会出现行锁竞争;用本地缓存、热点复制与写合并等手段摊平热点。

识别按 key 维度统计访问量与分片负载,定位头部键
缓存侧本地缓存承接读;热点键复制到多个分片读
写侧合并写与延迟聚合,降低行级竞争
  • 本地缓存:进程内高频读取,减少集中访问
  • 读扩散:热点键复制多份,读侧随机选择副本
  • 写合并:短窗口聚合同键写请求,降低行锁竞争
  • 资源隔离:热点依赖独立实例或线程池,限制影响面
  • 根因治理:评估分片键与数据分布,必要时改键或加盐
识别口径单键 QPS 占比、分片负载偏离度与行锁等待指标
活动前动作按历史访问榜预判热点并提前复制与预热
活动后复盘更新热点清单与容量基线,供下一轮设计参考
峰值复核用头部键模拟峰值流量,验证复制与写合并的实际效果
降级预案热点键异常时降级读旧值或引导稍后重试,保护后端
热点的另一来源是数据分布倾斜:分片键设计不当会制造结构性热点。

易错点

  • 热点键集中在单个分片,扩容无法缓解
  • 本地缓存热点数据未设过期,更新后长期不一致

数据来源与参考

  • Redis 文档:热点键与大键处理
  • 《数据密集型应用系统设计》(Kleppmann)第 6 章
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌