redis-rdb-tools來解析分析reids dump文件及內存使用量

  • A+
所屬分類:python Redis

一. 前言

解析redis的dump.rdb文件,分析內存,以JSON格式導出數據。|
提供的功能有:
1. 生成內存報告
2. 轉儲文件到JSON
3. 使用標準的diff工具比較兩個dump文件

Rdbtools是以python語言開發的。

二. 安裝

2.1 前提條件
1. python2.4以上版本 和 pip
2. redis-py可選,只運行在測試用例下

2.2 從PyPI安裝(推薦)

2.3 從源碼包安裝

三. 轉換dump文件到JSON

3.1 解析dump文件并以JSON格式標準輸出

3.2 只解析符合正則的keys

3.3 只解析以“a”為開頭的hash且位于數據庫ID為2的

四. 生成內存報告

生成CSV格式的內存報告。包含的列有:數據庫ID,數據類型,key,內存使用量(byte),編碼。內存使用量包含key、value和其他值。
注意:內存使用量是近似的。在一般情況下,略低于實際值。
可以根據key或數據庫ID或數據類型對報告的內容進行過濾。

內存報告有助于檢測是否是應用程序邏輯導致的內存泄露,也有助于優化reids內存使用情況。

五. 單個key所使用的內存量

有時候,需要查詢某個key所使用的內存。如果全部導出來在查找將是很愚蠢且耗時的。對于這種情景,可以使用redis-memory-for-key命令。
如果出現下面信息,需要安裝redis模塊。redis-memory-for-key依賴redis-py包。

實例如下:

六. 比較RDB文件

使用--command diff選項,并通過管道來進行排序。

使用kdiff3工具來進行比較,kdiff3是圖形化的工具,比較直觀。kdiff3工具比較兩個或三個輸入文件或目錄。
安裝kdiff3

七. 使用解析器

八. 其他資源

1. FAQ:https://github.com/sripathikrishnan/redis-rdb-tools/wiki/FAQs
2. redis dump文件規范: https://github.com/sripathikrishnan/redis-rdb-tools/wiki/Redis-RDB-Dump-File-Format
3. redis RDB歷史版本: https://github.com/sripathikrishnan/redis-rdb-tools/blob/master/docs/RDB_Version_History.textile
4.?redis-rdb-tools:https://github.com/sripathikrishnan/redis-rdb-tools

九. 其他工具Redis-audit?

Redis-audit 是一個用ruby實現的腳本,通過它,我們可以知道每一類 key 對內存的使用量。它可以提供的數據有:某一類 key 值的訪問頻率如何,有多少值設置了過期時間,某一類 key 值使用內存的大小,這很方便讓我們能排查哪些 key 不常用或者壓根不用。
項目地址:https://github.com/snmaynard/redis-audit

如需轉載請注明出處:http://www.qofhx.tw/html/2653.html

weinxin
微信公眾號
掃一掃關注運維生存時間公眾號,獲取最新技術文章~

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:3   其中:訪客  3   博主  0

    • [email protected] 9

      如果redis現在已經占用10G內存,用這個工具分析大概用多久?

      • 要哄 9

        很好。收下。

        • chhxo 9

          拜讀