环境: 某个redis集群(redis4.0.11的主从环境)
背景:这个redis集群开发有大量的key的写入和过期,导致内存急剧上涨。
使用 rdb工具 (git地址:https://github.com/sripathikrishnan/redis-rdb-tools) 分析下rdb文件后,发现内存中有很多的key,过期时间早到了,但是实际上还存在。原因: 因为redis的key清理策略是懒惰删除(lazy free),我们可以尝试调大,这样每秒钟执行的redis的内部cronjob次数将增大,也就可以加快key的淘汰。
操作步骤:
1、config get hz 看到当前redis-server 默认值是10
2、config set hz 50 我们这里将hz设置为50,然后观察段时间看看(注意hz的设置值可以以10为步长逐步增加,但是一般不要超过100)
下面 2张图,是我从监控上截取的。可以看到 设置后迅速有大量的key被淘汰了。