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

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

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

背景

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

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

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

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

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

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

RDB 说明

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

rdb-cli 分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

小结

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

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

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

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

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

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

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • 六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    六大权益!华为8月服务日开启:手机免费贴膜、维修免人工费

    8月5日消息,一年一度的华为开发者大会2023(Together)日前在松山湖拉开帷幕,与此同时,华为8月服务日也式开启,到店可享六大专属权益。华为用户可在华为商城Ap
  • 从 Pulsar Client 的原理到它的监控面板

    从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 一篇聊聊Go错误封装机制

    一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 得物效率前端微应用推进过程与思考

    得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 从零到英雄:高并发与性能优化的神奇之旅

    从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • Temu起诉SHEIN,跨境电商战事升级

    Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
Top