3. 热点Key的定义与分类:热Key、大Key、热Slot、热节点

在Redis故障排查中,“热点”是一个统称,但实际场景下存在四种不同粒度的热点形态:热Key、大Key、热Slot、热节点。四者成因不同、影响范围不同,排查与治理手段也各有侧重。本节从定义出发,厘清四类热点的区别与联系,为后续案例实战打下基础。

核心认知:热Key是“访问频率高”,大Key是“数据体量大”,热Slot是“哈希槽负载倾斜”,热节点是“物理节点过载”。四者可能独立出现,也可能相互诱发。

3.1 热Key(Hot Key)

定义:在短时间内被大量客户端并发访问的单个Key。热Key是Redis最常见的性能杀手,通常表现为QPS(每秒查询数)突增,远超单个实例的处理能力。

典型特征:

  • QPS > 10万/秒(视机器配置而定)
  • CPU使用率飙升,单核打满
  • 客户端出现大量超时或连接拒绝
  • Redis慢查询日志中出现高频访问的同一Key

常见场景:

  • 秒杀商品、爆款新闻、热搜榜单
  • 报表导出服务中频繁查询的汇总Key
  • 全局计数器、分布式锁

3.2 大Key(Big Key)

定义:单个Key存储的数据量过大,导致读写、网络传输、内存分配等操作耗时显著增加。大Key不一定是热Key,但大Key一旦被频繁访问,会加剧性能恶化。

典型特征:

  • String类型Value > 10MB
  • 集合类型(List/Hash/Set/Sorted Set)元素个数 > 1万
  • 单个Key内存占用 > 100MB
  • 删除或序列化该Key时导致Redis阻塞

常见场景:

  • 缓存用户全量行为日志的Hash
  • 存储大文本报表结果的String
  • 未分页的全量数据集合

3.3 热Slot(Hot Slot)

定义:在Redis集群模式下,某个哈希槽(Hash Slot)承载的Key数量或访问量远高于其他槽位,导致该槽所在的主节点负载不均。热Slot是集群倾斜的中间表现形态。

典型特征:

  • 集群节点间内存使用率差异 > 20%
  • 某个节点的QPS是其他节点的3倍以上
  • 集群reshard(重新分片)时该槽迁移耗时极长

常见场景:

  • 业务Key命名未加随机后缀,导致大量Key落入同一槽
  • 使用Hash Tag强制将相关Key聚集到同一槽,但未控制总量
  • 热Key恰好落在某个槽,间接导致该槽变热

3.4 热节点(Hot Node)

定义:Redis集群中某个物理节点(主节点或从节点)因承载了过多热Slot或热Key,导致CPU、内存、网络带宽等资源成为瓶颈。热节点是集群层面最严重的热点形态,可能引发级联故障。

典型特征:

  • 节点CPU使用率持续 > 80%
  • 节点内存碎片率异常升高
  • 节点网络出口带宽打满
  • 该节点上的从节点复制延迟持续增大

常见场景:

  • 多个热Slot集中分布在同一节点
  • 大Key频繁读写导致节点IO过载
  • 集群节点数较少,热点无法分散

3.5 四类热点的区别与联系

下表从关注维度、影响范围、排查手段、治理方向四个角度进行对比:

对比维度 热Key 大Key 热Slot 热节点
关注维度 访问频率(QPS) 数据体量(内存/元素数) 槽位负载分布 节点资源利用率
影响范围 单个Key所在实例 单个Key所在实例 集群中部分节点 整个集群稳定性
排查手段 hotkeys命令、monitor采样 bigkeys命令、memory usage cluster slots、节点QPS监控 节点CPU/内存/带宽监控
治理方向 本地缓存、读写分离、Key拆分 数据分片、压缩、淘汰 调整Hash Tag、reshard 节点扩容、流量调度

四者之间的诱发关系:

  • 热Key如果数据量大,会同时成为大Key,加剧节点压力。
  • 大Key即使访问不频繁,一旦被扫描或迁移,也会导致热Slot。
  • 热Slot聚集到同一节点,直接导致热节点。
  • 热节点上的所有Key和Slot都会受到影响,形成恶性循环。
实战提醒:在报表导出服务中,最常见的链路是“热Key → 热Slot → 热节点”。例如,一个存储当日报表汇总的Key被频繁查询,该Key所在的Slot负载升高,进而导致该Slot所在节点CPU打满,最终影响该节点上所有其他业务。

3.6 四类热点关系示意图

下图展示了四类热点在Redis集群中的层级关系与转化路径:

四类热点层级关系与转化路径 热Key 大Key 热Slot 热节点 访问频率高,QPS突增 可独立存在,也可伴随大Key 数据体量大,内存占用高 不一定是热Key,但读写慢 哈希槽负载倾斜 由热Key或大Key聚集导致 节点资源耗尽 集群级故障,影响面最大 高频访问 +大数据量 槽内Key过多 或访问集中 多个热Slot 聚集同一节点

3.7 四类热点在报表导出场景中的典型表现

以课程案例中的报表导出服务为例,四类热点可能同时出现:

热点类型 报表导出场景表现 排查线索
热Key 某张热门报表的缓存Key被大量用户同时查询,QPS > 5万 Redis hotkeys命令显示该Key访问次数异常
大Key 某张报表结果存储为String,Value大小超过50MB Redis bigkeys命令发现该Key内存占用最大
热Slot 该大Key所在哈希槽的QPS是其他槽的10倍 集群监控发现该槽所在节点CPU飙升
热节点 该节点CPU持续100%,其他节点负载正常 节点监控显示网络带宽打满,从节点复制延迟
排查口诀:先看热Key找高频,再看大Key查体积;热Slot看分布,热节点看资源。四者层层递进,定位根因不遗漏。