You need to enable JavaScript to run this app.
导航

调整 Redis 定期任务的执行频率

最近更新时间2023.11.15 18:06:56

首次发布时间2021.11.04 14:15:17

通过修改 hz 参数的值,您可以调整 Redis 执行定期任务的频率,从而改变 Redis 清除过期 Key、清理超时连接、回收内存碎片的效率。

Redis 定期任务与 hz 参数的关系

为了定期检测资源和服务状态并根据预定策略执行相应的操作,Redis 调用一个内部函数来执行多种后台任务,例如:

  • 计算 LRU 信息并清除过期 Key。
  • 关闭超时的客户端连接。
  • 整理 hash 类型的数据。
  • 执行 RDB 或 AOF 持久化相关操作。
  • 更新统计信息。
  • 回收内存碎片。

这些定期任务是 Redis 服务正常运行的保障,它们的执行频率由 hz 参数的值指定,默认为 10,即每秒执行 10 次。

典型应用场景

Redis 会通过执行定期任务来主动清除过期 Key,执行过程如下:

  1. 从设置了过期时间的 Key 的集合中随机检查 20 个 Key。
  2. 删除检查中发现的所有过期 Key。
  3. 如果检查结果中 25% 以上的 Key 已过期,则开始新一轮任务。

如果过期 Key 数量很多或者增加速度很快,而 Redis 的主动清除频率较低,过期 Key 将占用大量的内存空间,可能会影响 Redis 服务的性能。适当调整 hz 参数的值,提高清除频率,能够很好地解决这个问题。

参数说明及设置建议

hz 参数的取值范围为 1~500。增大 hz 参数的值会提升各项定期任务的执行频率,但也会提高 Redis 服务的 CPU 利用率。默认值 10 在一般情况下已经可以满足需求,如果业务场景对于某些定期任务的执行频率有很高的要求,您可以尝试在 100 以内调整参数值。将 hz 的值增加到 100 以上会让 Redis 更频繁的处理定时任务,增加主线程的延迟时间,请谨慎操作。

操作步骤

  1. 登录 Redis 控制台
  2. 在顶部菜单栏的左上角,选择实例所属的项目和地域。
  3. 实例列表页,单击目标实例名称。
  4. 在实例详情页,单击参数配置页签。
  5. 参数列表页签,单击批量修改参数,您可以在右侧搜索栏中输入 hz 进行筛选。
  6. 根据业务的实际情况,在运行值列的文本框中输入 hz 参数的值,设置完成后,单击参数列表左上角的提交
  7. 在弹出的对话框中,确认修改的参数和参数值,单击确定

相关 API

API
描述
DescribeDBInstanceParams调用 DescribeDBInstanceParams 接口查询指定实例的配置参数信息。
ModifyDBInstanceParams调用 ModifyDBInstanceParams 接口修改指定实例的配置参数。