一、操作场景
通过 DBbrain 的热 Key 分析系统,能够快速发现热点 Key,从而为服务优化提供基础。
二、背景信息
·热 Key:在统计周期内被访问次数远高于其他 Key 的 Key。常见来源包括秒杀活动 Key、热点文章 Key、配置 Key 等。
·访问频次:这篇档中的核心统计字段,表示所选时间范围内该 Key 被访问的累计次数,单位为次,不是 QPS 等速率指标。
三、使用限制
| 限制项 | 限制说明 |
| 数据保留时长 | 热 Key 原始采样数据保留 10 天,超过该期限的数据不可查询。 |
| 单次查询时间跨度 | 起止时间差 ≤ 10 天。 |
| 历史可追溯起点 | 起始时间不可早于当前时刻 10 天前。 |
| 列表展示条数 | 单次最多返回 100 条,可选择 50 条或 100 条。 |
| 节点版本依赖 | 实例接入层版本较低时,可能不上报节点 ID 或 DB ID,对应列将显示为空,建议升级到最新版本。 |
| 数据可见性 | 在统计周期不足 1 分钟时(例如新接入实例、刚触发首次命令访问),可能因采样周期未到而暂时无法查询到结果。 |
四、注意事项
·访问频次是绝对计数(单位:次),不是 QPS 等速率指标。在不同时间范围下查询同一个 Key,得到的访问频次数值不同属正常现象,由所选时间窗口决定。
·比较不同 Key 的访问频次时,请确保使用的是相同的时间范围和相同的节点筛选条件,否则不具备可比性。
五、查看热 Key 分析
1. 登录 DBbrain 控制台。
2. 在左侧导航栏,选择诊断优化。
3. 在页面上方选择对应数据库和实例 ID,选择延迟分析 > 热 Key 分析页签。
4. 在热 Key 分析页面,设置查询条件,参数说明如下。
| 参数 | 说明 |
| 数据类型 | 按 Key 的数据结构过滤。支持:全部、string、list、set、hash、sortedset、stream、none。 |
| 时间范围 | 支持实时视图与历史视图两种模式:实时视图:展示最近一个采样周期内的热 Key,并随后台采样滚动更新。历史视图:可选近 1 小时、近 3 小时、近 24 小时、近 7 天,或自定义起止时间。时间范围最长 10 天,起始时间不可早于当前时刻 10 天前。 |
| Redis 节点 | 选择待分析的 Redis 节点(每个节点是一个独立的 Redis 服务器实例)。可按节点单独查看,也可查看所有节点。 |
| 列表限制条数 | 返回 Top N 数据的条数。支持 50 条、100 条,默认 50 条。 |
5. 查看分析结果。列表按访问频次降序排列,单击单条记录可查看该 Key 的详情。
六、后续步骤
定位到热 Key 后,可结合业务情况采取以下优化措施:
·Key 拆分:将单个热 Key 按业务维度拆分成多个子 Key,分散到不同节点。
·本地缓存:在业务侧引入二级缓存,减少对热 Key 的直接访问。
·读写分离:通过读写分离将读流量分摊到只读节点。
·业务限流:在应用侧对热点 Key 的访问设置限流策略,防止瞬时流量打满节点。
七、相关操作
·延迟分析(命令字分析)
·内存分析(大 Key 分析)
·自治中心
八、对应的 API 接口
DescribeRedisTopHotKeys
九、Q1:为什么两次查询同一个 Key 的访问频次差异很大?
请检查以下三种常见情况:
1. 是否切换了不同的时间范围(窗口长度变化会直接导致访问频次变化)。
2. 是否切换了不同的 Redis 节点(数据按节点聚合)。
3. 是否处于实时视图模式且距离上次查询不足 1 个采样周期(约 1 分钟),此时数据仍在滚动更新。
十、实时视图下看不到数据或数据为 0 怎么办?
可能原因及处理建议:
| 可能原因 | 处理方法 |
| 实例刚接入或刚触发首次命令访问,尚未完成首个采样周期 | 等待 1~2 个采样周期(约 1~2 分钟)后重新查询。 |
| 实例接入层版本较低,未支持热 Key 数据上报 | 联系运维或工单升级实例至最新版本。 |
| 所选 Redis 节点在该时段确实无命令访问 | 切换到全部节点或选择业务高峰节点查询。 |
| 该实例不存在明显热点(访问分布均匀) | 该结果为正常状态,可改为查看大 Key 分析或慢日志分析。 |
十一、不同时间范围下的访问频次为何相差悬殊?
这是预期行为,因为访问频次是该时间范围内的累计值,窗口越长累计值越大。例如同一个 Key:
·近 1 小时访问频次为 72000;
·近 24 小时访问频次为 1728000;
·近 7 天访问频次为 12096000。
这只是统计窗口的差异,不代表该 Key 的访问行为发生变化。如需对比访问行为,请使用相同的时间范围。