首页/数据/Redis 进阶速查/hz:定时任务频率
性能与排障129 条

hz:定时任务频率

hz 控制后台任务(过期清理、超时检测等)的执行频率,默认 10 即每秒 10 次;调高更及时但增加 CPU 占用。

Redis 进阶速查数据更新于 2026-10-13

hz 控制什么

hz 控制 Redis 后台定时任务的执行频率,默认 10,表示每秒执行 10 次。这些任务负责触发过期键清理、处理阻塞命令(如 BLPOP)超时检测、回收空闲连接等日常工作。调高让这些动作更及时,代价是 CPU 占用随之上升,而且每次任务本身也要占用主线程时间。

基本信息

默认值10(每秒 10 次)
影响范围过期清理触发、阻塞命令超时处理、空闲连接检查
调整方向低延迟实例可适度调高,高吞吐实例保持默认
主要代价CPU 占用随频率上升
相关配置dynamic-hz 允许在空闲时自动降低频率

典型使用场景

  • 低延迟实例:希望过期键更快被清理时适度调高
  • 阻塞命令密集:让一类阻塞命令的超时唤醒更及时
  • CPU 有余量但延迟敏感:用频率换取响应及时性
  • 空闲实例省开销:配合动态调节在负载低时降频
  • 调参验证:改动前后用同一指标对比,别只看短窗口

查看与调整

查看与调整
redis-cli CONFIG GET hz              # 当前配置值
redis-cli CONFIG SET hz 20           # 按需调整,同时观察 CPU 与延迟
redis-cli CONFIG GET dynamic-hz      # 是否允许动态调整频率
redis-cli INFO cpu                   # 各类任务占用的 CPU 时间变化
redis-cli INFO commandstats          # 命令耗时是否随改动变化

调整得失去看

方向收益代价
调高 hz过期清理与超时检测更及时CPU 上升,主线程被更频繁打断
保持默认开销与及时性的平衡点极端低延迟诉求可能不够
调低 hzCPU 占用下降过期键驻留更久,超时处理变钝
启用动态调节空闲时自动降频高负载下的频率由实现策略决定
频率调整的效果在短窗口内很难看出来:至少覆盖一个完整业务周期再比较,并同时记录 CPU 占用变化,避免只看到延迟一侧。
把 hz 当成所有延迟问题的通用开关会失望:它只影响定时任务类工作,慢命令、网络与持久化引起的延迟与它关系不大。

易错点

  • 以为调 hz 能解决全部延迟问题:场景不匹配时收益很小,还引入额外 CPU 开销
  • 频繁调整并在短窗口内观察:噪声大于效果,结论不可靠
  • 只调高不观察 CPU:高频任务本身也要占用主线程时间
  • 忽略动态调节配置:静态调高后空闲期仍按高频执行,长期多耗 CPU

数据来源与参考

  • Redis 官方文档:hz 配置说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌