Redis 5.0版本新加入了dynamic-hz参数,可根据客户端连接数动态调整hz的值,从而实现Redis定期任务执行频率的自动调整。

前提条件

实例的引擎版本为Redis 5.0或以上。

hz与dynamic-hz

hz参数用于指定Redis定期任务的执行频率,这些任务包括关闭超时的客户端连接、主动清除过期key等,详细介绍请参见调整Redis定期任务的执行频率。当定期任务的执行频率为一个固定值时,容易产生以下问题:

  • 如果该值过小,在超时的客户端连接数较多或过期key较多等情况下,资源得不到及时的整理回收,可能影响Redis服务的性能甚至导致服务崩溃。
  • 如果该值过大,定期任务将会消耗过多的CPU资源,同样可能影响Redis服务的稳定性。

为了平衡Redis的CPU使用率和响应及时性,Redis 5.0版本新增了dynamic-hz参数,并分离了实际hz(hz)和已设置的hz(configured_hz)。

说明 您可以使用INFO命令查看hz和configured_hz的值。

dynamic-hz的可选值为yesno,分别代表开启动态hz和关闭动态hz。默认值为yes。当动态hz开启时,您设置的hz参数的值,即configured_hz,将作为基线值,而Redis服务中的实际hz值会在基线值的基础上根据已连接到Redis的客户端数量自动调整,连接的客户端越多,实际hz值越高,Redis执行定期任务的频率就越高。

在Redis管理控制台设置参数

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

使用API设置参数

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