*Redis HOTKEYS-STOP 命令

HOTKEYS-STOP 用于停止 HotKeys 模块的访问频率监控,暂停统计 Redis 实例中各键的访问频率。


*语法

HOTKEYS-STOP

*参数说明

无参数。


*返回值

  • OK:监控停止成功
  • Error:HotKeys 模块未加载或监控未启动时返回

*时间复杂度

O(1)

*

*示例

*停止热点键监控

> HOTKEYS-STOP
OK

*启动后停止监控

> HOTKEYS-START
OK
> HOTKEYS-STOP
OK
> HOTKEYS
(error) ERR HotKeys not started

*停止后查询已记录的统计

> HOTKEYS-STOP
OK
> HOTKEYS-GET user:1001:session
(integer) 0

*常见错误

错误 原因 解决
ERR unknown command 'hotkeys-stop' HotKeys 模块未加载 在 redis.conf 中加载 hotkeys.so 模块
ERR HotKeys not started 监控未启动 无需停止,或先执行 HOTKEYS-START
停止后 HOTKEYS 仍然返回结果 模块实现差异,部分实现停止后仍保留数据 检查模块版本,如需清空数据可执行 HOTKEYS-RESET

*最佳实践

  • 场景:监控任务完成后及时停止,减少 Redis 性能开销
  • 建议在业务高峰期结束后停止监控,分析已收集的数据
  • 配合 HOTKEYS-STARTHOTKEYS-RESET 形成完整的监控周期管理
  • 长期开启监控可能导致内存占用增加,建议定期停止并清理
  • 停止前先用 HOTKEYS 导出热点键列表,保存分析结果
  • 在 Redis Cluster 中,需在每个节点上分别执行停止操作

*FAQ

Q1: 停止监控后已统计的数据会丢失吗? A: 通常不会立即丢失,但部分模块实现可能在停止后清空数据。建议停止前导出结果。

Q2: HOTKEYS-STOP 和 HOTKEYS-RESET 有什么区别? A: HOTKEYS-STOP 仅暂停监控,保留已统计数据;HOTKEYS-RESET 清空数据,监控状态视实现而定。

Q3: 停止监控后重新启动,之前的统计会继续累积吗? A: 取决于具体模块实现,部分实现会保留历史数据,部分会重新开始统计。建议启动前先执行 HOTKEYS-RESET 确保数据准确。

Q4: 停止监控后,已统计的数据在内存中保留多久? A: 取决于模块实现和内存压力,通常不会永久保留。建议停止监控后立即导出 HOTKEYS 结果,避免数据丢失。

Q5: 为什么停止监控后 HOTKEYS-GET 仍然返回非 0 值? A: 部分模块实现停止监控后仍保留历史统计数据。如果数据一直不变,说明监控已停止,返回值是停止前的历史数据。