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

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

背景:

1、redis 版本 5.0;

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

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

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

优化过程:

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

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

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

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

5、分析 redis 源码。

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

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

hz 说明

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

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

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

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

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram