redis过期键未释放的原因是什么

网友投稿 763 2023-11-18

redis过期键未释放的原因是什么

本篇内容主要讲解“redis过期键未释放的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis过期键未释放的原因是什么”吧!

redis过期键未释放的原因是什么

背景:

1、redis 版本 5.0;

2、32G 的 redis 云服务器,内存持续上涨,过期键占用内存一直未释放。内存使用如下图:

近期 redis 操作:把 2000 万永不过期键,随机分配 7-20 天的过期时间。

优化过程:

1、对*** “离线全量 key 分析” 持续观察几天;

2、发现过期键的内存一直没有释放,从 2G 涨到 5G;

3、分析过期键内存不释放原因;

4、调整 redis 的 hz 参数,从 10 调 30,发现没有变化;

5、分析 redis 源码。

6、结论:redis 内存不释放原因:近期把 2000 万个键设置过期时间,导致垃圾回收命中率达不到 25%,不会重复轮循过期键。(源码文件:expire.c,activeExpireCycle 函数)。

hz 说明

7、最终处理方式:无需任何操作,随着过期键增多命中率提高,内存最终会释放(想加快把 “hz” 参数设置越大越快,但是会消耗更多 CPU 资源,可参数***文档)。

到此,相信大家对“redis过期键未释放的原因是什么”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库存储引擎是什么?了解这个关键技术的重要性
下一篇:MySQL怎么实现自动为查询数据结果加序号
相关文章