千家信息网

【案例】redis-server 大量key过期不释放空间的

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,环境: 某个redis集群(redis4.0.11的主从环境)背景:这个redis集群开发有大量的key的写入和过期,导致内存急剧上涨。使用 rdb工具 (git地址:https://github.c
千家信息网最后更新 2025年01月25日【案例】redis-server 大量key过期不释放空间的

环境: 某个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被淘汰了。




0