通过修改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以上对CPU使用率有相对较大的影响,请谨慎操作。

在Redis管理控制台设置参数

  1. 登录Redis管理控制台
  2. 在界面左上方阿里云图标的右侧选择实例所在的地域 。
  3. 单击目标实例的实例ID或者操作列的管理
  4. 实例信息页的左侧导航栏中,单击参数设置
  5. 在参数列表中,单击hz右侧操作列的修改
  6. 在弹出的对话框中完成以下步骤。
    1. 按照业务需求修改hz的值。
    2. 单击确定

使用API设置参数

除了在控制台修改参数的值,您还可以调用ModifyInstanceConfig接口来设置参数。