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