2026-06-08 13:14:30
发现 Redis 热 Key 的方法及解决方案如下:
如何发现 Redis 热 Key使用 Redis 自带的 --hotkeys 参数
Redis 4.0.3 版本新增 hotkeys 参数,可返回所有 key 的被访问次数。
前提条件:Redis Server 的 maxmemory-policy 需设置为 LFU 算法(volatile-lfu 或 allkeys-lfu),否则会报错。
示例配置:
# 使用 volatile-lfu 策略maxmemory-policy volatile-lfu# 或使用 allkeys-lfu 策略maxmemory-policy allkeys-lfu注意事项:hotkeys 命令会扫描整个键空间,增加 CPU 和内存消耗,需谨慎使用。
使用 MONITOR 命令
MONITOR 命令可实时查看 Redis 的所有操作(如读写、删除),适用于临时监控。
操作步骤:
在 Redis CLI 中执行 MONITOR 命令。
短暂监控后关闭命令,将输出重定向至文件。
分析文件中的请求,统计高频访问的 key。
注意事项:MONITOR 对性能影响较大,禁止长时间开启,生产环境需谨慎使用。
借助开源项目
京东零售开源的 hotkey 项目支持热 Key 的发现与处理,可直接集成使用。

根据业务情况提前预估
结合业务场景预估潜在热 Key(如秒杀商品、热门新闻),但无法覆盖所有突发情况(如突发热点事件)。
业务代码中记录分析
在业务代码中添加逻辑记录 key 的访问情况,但会增加代码复杂度,通常不推荐。
借助公有云的 Redis 分析服务
公有云(如阿里云)通常提供热 Key 分析功能。
示例:阿里云 Redis 支持实时热 Key 分析,文档地址:

读写分离
方案:主节点处理写请求,从节点处理读请求,分散读压力。
适用场景:读多写少的场景,可缓解单节点读负载。
使用 Redis Cluster
方案:将热点数据分散存储在多个 Redis 节点上,利用分片机制降低单节点压力。
注意事项:需确保热 Key 的哈希槽均匀分布,避免倾斜。
二级缓存
方案:将热 Key 缓存到 JVM 本地内存(如 Caffeine),减少 Redis 访问。
优点:本地缓存延迟低,适合高频访问数据。
注意事项:需处理数据一致性问题(如通过消息队列同步更新)。
公有云优化方案
示例:阿里云 Redis 提供 Proxy Query Cache 功能,可缓存热点 Key 的查询结果,减少后端 Redis 访问。
