AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

聊一聊如何離線分析Redis緩存的空閑分布

來源: 責編: 時間:2024-04-08 17:17:53 150觀看
導讀背景我們在使用 Redis 的過程中,有時候會想要知道某些 key 是否長時間沒有被訪問,如果這些 key 長時間沒有人訪問,并且還占用了比較大的內存空間時,我們就會想及時的清理掉這些 key。Redis 本身提供了一個 OBJECT IDLETIM

背景

我們在使用 Redis 的過程中,有時候會想要知道某些 key 是否長時間沒有被訪問,如果這些 key 長時間沒有人訪問,并且還占用了比較大的內存空間時,我們就會想及時的清理掉這些 key。pOh28資訊網——每日最新資訊28at.com

Redis 本身提供了一個 OBJECT IDLETIME 的命令可以讓我們來查詢某個 key 最后一次被訪問后的秒數。pOh28資訊網——每日最新資訊28at.com

https://redis.io/commands/object-idletime/pOh28資訊網——每日最新資訊28at.com

但是這個命令對于分析整個 Redis 實例時會顯得十分吃力,免不了 scan + object idletime 的組合。pOh28資訊網——每日最新資訊28at.com

如果能把這個時間從 rdb 文件讀出來再進行分析,可以有效減少對線上實例的影響,同時效率也會高不少。pOh28資訊網——每日最新資訊28at.com

下面來看看如何做到的。pOh28資訊網——每日最新資訊28at.com

RDB 說明

關鍵操作符pOh28資訊網——每日最新資訊28at.com

16進制
pOh28資訊網——每日最新資訊28at.com

10進制
pOh28資訊網——每日最新資訊28at.com

簡稱
pOh28資訊網——每日最新資訊28at.com

說明
pOh28資訊網——每日最新資訊28at.com

0xF8
pOh28資訊網——每日最新資訊28at.com

248
pOh28資訊網——每日最新資訊28at.com

IDLE
pOh28資訊網——每日最新資訊28at.com

標識LRU的空閑時間
pOh28資訊網——每日最新資訊28at.com

0xF9
pOh28資訊網——每日最新資訊28at.com

249
pOh28資訊網——每日最新資訊28at.com

FREQ
pOh28資訊網——每日最新資訊28at.com

標識LFU的訪問頻率
pOh28資訊網——每日最新資訊28at.com

其中 248 和 249 兩個是只會存在一個,但是它們又用的同一個數據結構,所以要把它們放在一起來說明。pOh28資訊網——每日最新資訊28at.com

下面再看看一個 key value 完整的“數據結構”pOh28資訊網——每日最新資訊28at.com

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

可以看到第三部分就是我們所需要的。pOh28資訊網——每日最新資訊28at.com

rdb-cli 分析

rdb-cli 是老黃寫的一個開源 rdb 文件分析器,源碼地址:https://github.com/catcherwong/rdb-tools,感興趣的可以關注一下。pOh28資訊網——每日最新資訊28at.com

rdb-cli 里面有兩個命令用于做這一塊的分析。pOh28資訊網——每日最新資訊28at.com

首先是pOh28資訊網——每日最新資訊28at.com

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

執行這個之后,會生成一個 res.html 文件,打開這個文件會看到下面兩個圖:pOh28資訊網——每日最新資訊28at.com

圖片圖片pOh28資訊網——每日最新資訊28at.com

這兩個圖就是所有 key 的空閑分布,可以看到,就數量而言,這個 redis 實例,有超過 100w 的 key 是在 7天內沒有過訪問的!!pOh28資訊網——每日最新資訊28at.com

有這個大致分布,但是還看不到具體的細節,所以我們要用另外一個命令來看具體是那些 key 這么離譜。pOh28資訊網——每日最新資訊28at.com

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

執行這個之后,會生成一個 dump.csv 文件,打開這個文件可以看到下面的內容:pOh28資訊網——每日最新資訊28at.com

圖片圖片pOh28資訊網——每日最新資訊28at.com

著重看 idle 這一列,單位是秒。pOh28資訊網——每日最新資訊28at.com

可以看到超過 7天 沒訪問的,最長的有 16693102 秒,換算成天,是 193 天,接近 200 天。這種數據就不應該存在 redis 里面!pOh28資訊網——每日最新資訊28at.com

兩個命令,用起來還算是比較方便的,也比較快得到結果,當然上述兩個命令還有其他的過濾條件可以結合使用,用 -h 即可查看。pOh28資訊網——每日最新資訊28at.com

小結

對于設置了 LRU 相關策略的 Redis 實例才可以用這個方法去分析空閑分布,如果是 LFU 相關策略的,則無法看到空閑分布!!pOh28資訊網——每日最新資訊28at.com

原因的話,object idletime 已經告訴我們了。pOh28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-82031-0.html聊一聊如何離線分析Redis緩存的空閑分布

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 探索C++類中static關鍵字的妙用

下一篇: 深入掌握Rust測試:從基礎用例到控制測試執行的完全指南

標簽:
  • 熱門焦點
Top