本文目录#

热点 key 风险#

热点 key 导致单个分片 CPU 飙升、延迟增加、请求排队。需要从检测、缓解、架构优化三个层面进行治理。

检测方法#

  • 采集 INFO commandstats 与 slowlog;
  • 使用 Keyspace 访问统计脚本收集 QPS;
  • 在客户端(Lettuce、Redisson)记录 key 命中热点并上报 Prometheus。

缓解策略#

  • 缓存分片:对热点 key 仅缓存到本地 Caffeine;
  • Key 拆分:针对计数类 key 使用 shardKey + hash
  • 候补副本:通过读写分离缓解读压力;
  • Lua 脚本或 HyperLogLog 统计减少写入。

架构优化#

  • 使用 Redis Cluster 的 hash tag 控制热点扩散;
  • 引入 Proxy(Twemproxy、Predixy)实现 Multi-Key 批量;
  • 监控热度变化并动态调整 TTL。

自检清单#

  • 是否建立热点 key 监控与报警?
  • 是否对热点 key 有自动化降级策略?
  • 是否定期回顾业务模型,避免单 key 聚集?

参考资料#


本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。