当前位置:首页 > 科技  > 软件

聊一聊如何离线分析Redis缓存的空闲分布

来源: 责编: 时间:2024-04-08 17:17:53 248观看
导读背景我们在使用 Redis 的过程中,有时候会想要知道某些 key 是否长时间没有被访问,如果这些 key 长时间没有人访问,并且还占用了比较大的内存空间时,我们就会想及时的清理掉这些 key。Redis 本身提供了一个 OBJECT IDLETIM

背景

我们在使用 Redis 的过程中,有时候会想要知道某些 key 是否长时间没有被访问,如果这些 key 长时间没有人访问,并且还占用了比较大的内存空间时,我们就会想及时的清理掉这些 key。q5Q28资讯网——每日最新资讯28at.com

Redis 本身提供了一个 OBJECT IDLETIME 的命令可以让我们来查询某个 key 最后一次被访问后的秒数。q5Q28资讯网——每日最新资讯28at.com

https://redis.io/commands/object-idletime/q5Q28资讯网——每日最新资讯28at.com

但是这个命令对于分析整个 Redis 实例时会显得十分吃力,免不了 scan + object idletime 的组合。q5Q28资讯网——每日最新资讯28at.com

如果能把这个时间从 rdb 文件读出来再进行分析,可以有效减少对线上实例的影响,同时效率也会高不少。q5Q28资讯网——每日最新资讯28at.com

下面来看看如何做到的。q5Q28资讯网——每日最新资讯28at.com

RDB 说明

关键操作符q5Q28资讯网——每日最新资讯28at.com

16进制
q5Q28资讯网——每日最新资讯28at.com

10进制
q5Q28资讯网——每日最新资讯28at.com

简称
q5Q28资讯网——每日最新资讯28at.com

说明
q5Q28资讯网——每日最新资讯28at.com

0xF8
q5Q28资讯网——每日最新资讯28at.com

248
q5Q28资讯网——每日最新资讯28at.com

IDLE
q5Q28资讯网——每日最新资讯28at.com

标识LRU的空闲时间
q5Q28资讯网——每日最新资讯28at.com

0xF9
q5Q28资讯网——每日最新资讯28at.com

249
q5Q28资讯网——每日最新资讯28at.com

FREQ
q5Q28资讯网——每日最新资讯28at.com

标识LFU的访问频率
q5Q28资讯网——每日最新资讯28at.com

其中 248 和 249 两个是只会存在一个,但是它们又用的同一个数据结构,所以要把它们放在一起来说明。q5Q28资讯网——每日最新资讯28at.com

下面再看看一个 key value 完整的“数据结构”q5Q28资讯网——每日最新资讯28at.com

252 EXPIRE_TIME_MS|253 EXPIRE_TIME|249 LFU 或 248 LRU|xxx VALUE_TYPE|xxx KEY|xxx VALUE|

可以看到第三部分就是我们所需要的。q5Q28资讯网——每日最新资讯28at.com

rdb-cli 分析

rdb-cli 是老黄写的一个开源 rdb 文件分析器,源码地址:https://github.com/catcherwong/rdb-tools,感兴趣的可以关注一下。q5Q28资讯网——每日最新资讯28at.com

rdb-cli 里面有两个命令用于做这一块的分析。q5Q28资讯网——每日最新资讯28at.com

首先是q5Q28资讯网——每日最新资讯28at.com

rdb-cli memory /    -ot html /    --sep-count 3 /    /tmp/biz_a_20240301.rdb

执行这个之后,会生成一个 res.html 文件,打开这个文件会看到下面两个图:q5Q28资讯网——每日最新资讯28at.com

图片图片q5Q28资讯网——每日最新资讯28at.com

这两个图就是所有 key 的空闲分布,可以看到,就数量而言,这个 redis 实例,有超过 100w 的 key 是在 7天内没有过访问的!!q5Q28资讯网——每日最新资讯28at.com

有这个大致分布,但是还看不到具体的细节,所以我们要用另外一个命令来看具体是那些 key 这么离谱。q5Q28资讯网——每日最新资讯28at.com

rdb-cli csv /    --min-idle 604800 /    /tmp/biz_a_20240301.rdb

执行这个之后,会生成一个 dump.csv 文件,打开这个文件可以看到下面的内容:q5Q28资讯网——每日最新资讯28at.com

图片图片q5Q28资讯网——每日最新资讯28at.com

着重看 idle 这一列,单位是秒。q5Q28资讯网——每日最新资讯28at.com

可以看到超过 7天 没访问的,最长的有 16693102 秒,换算成天,是 193 天,接近 200 天。这种数据就不应该存在 redis 里面!q5Q28资讯网——每日最新资讯28at.com

两个命令,用起来还算是比较方便的,也比较快得到结果,当然上述两个命令还有其他的过滤条件可以结合使用,用 -h 即可查看。q5Q28资讯网——每日最新资讯28at.com

小结

对于设置了 LRU 相关策略的 Redis 实例才可以用这个方法去分析空闲分布,如果是 LFU 相关策略的,则无法看到空闲分布!!q5Q28资讯网——每日最新资讯28at.com

原因的话,object idletime 已经告诉我们了。q5Q28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82031-0.html聊一聊如何离线分析Redis缓存的空闲分布

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 探索C++类中static关键字的妙用

下一篇: 深入掌握Rust测试:从基础用例到控制测试执行的完全指南

标签:
  • 热门焦点
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • 重估百度丨“晚熟”的百度云,能等到春天吗?

    ©自象限原创作者|程心排版|王喻可2016年7月13日,百度云计算战略发布会在北京举行,宣告着百度智能云的正式启程。彼时的会场座无虚席,甚至排队排到了门外,在场的所有人几乎都
  • 新电商三兄弟,“抖快红”成团!

    来源:价值研究所作 者:Hernanderz 随着内容电商的概念兴起,抖音、快手、小红书组成的“新电商三兄弟”成为业内一股不可忽视的势力,给阿里、京东、拼多多带去了巨大压
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 半导体需求下滑 三星电子DS业务部门今年营业亏损预计超10万亿韩元

    7月17日消息,据外媒报道,去年下半年开始的半导体需求下滑,影响到了三星电子、SK海力士、英特尔等诸多厂商,营收明显下滑,部分厂商甚至出现了亏损。作为
  • OPPO K11评测:旗舰级IMX890加持 2000元档最强影像手机

    【Techweb评测】中端机型用户群体巨大,占了中国目前手机市场的大头,一直以来都是各手机品牌的“必争之地”,其中OPPO K系列机型一直以来都以高品质、
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
Top