redis rdb 文件分析工具和使用


redis參考
目前線上的 redis內存容量急劇增加,已經達到98%了.解決方案除了 擴容 redis內存,還需要分析下線上的數據增加是否符合預期.
所以需要下載線上的 rdb 文件來分析 數據使用情況.
目前使用的工具有兩個一個 python 的 redis_rdb_tools,另外一個是 golang的rdr.

redis_rdb_tools

  1. 安裝 python
    2.安裝 pip
    3.安裝rdbtools
  • pip 安裝(推薦): pip install rdbtools
  • github上下載源碼進行安裝
git clone https://github.com/sripathikrishnan/redis-rdb-tools
cd redis-rdb-tools
sudo python setup.py install

4.使用
例如:

  • 解析rdb文件並向屏幕打印輸出json數據
    rdb --command json dump.rdb
    結果:
    [{"fruit":["apple","banana"],
    "webset":{"baidu":"www.baidu.com"},
    "baiduyun":"redis",
    "languages":["python","java"],
    "page_rank":{"baidu.com":"10"}}]

  • 只輸出匹配某個key的數據
    rdb --command json --key "fruit" dump.rdb
    結果:
    [{"fruit":["apple","banana"]}]

  • 使用 redis-rdb-tools 生成內存快照,可以查看具體的 key 和過期時間,我們可以重點查看那些沒有過期時間的 key,如果是臟數據可以考慮清理一波
    rdb --command memory dump.rdb > memory.csv
    生成 CSV 格式的內存報告。包含的列有:數據庫 ID,數據類型,key,內存使用量(byte),編碼。內存使用量包含 key、value 和其他值,結果:
    database,type,key,size_in_bytes,encoding,num_elements,len_largest_element,expiry
    0,set,fruit,252,hashtable,2,6,
    0,hash,webset,81,ziplist,1,13,
    0,string,baiduyun,64,string,5,5,
    0,list,languages,161,quicklist,2,6,
    0,sortedset,page_rank,80,ziplist,1,9

  • redis-rdb-tools和mysql進行數據分析
    將redis-rdb-tools產生的csv導入到mysql中,用戶就可以根據自己的需求進行更詳盡的分析。
    a 創建表格:
    CREATE TABLE memory ( database int(128) DEFAULT NULL, type varchar(128) DEFAULT NULL, key varchar(128), size_in_bytes int(128) DEFAULT NULL, encoding varchar(128) DEFAULT NULL, num_elements int(128) DEFAULT NULL, len_largest_element varchar(128) DEFAULT NULL, expiry varchar(128) DEFAULT NULL, PRIMARY KEY (KEY) );

b 導入文件:
load data infile 'memory.csv' into table memory FIELDS TERMINATED BY ',' IGNORE 1 LINES;

c 展示結果:

rdr

更加偏向於整體統計和分析,各個數據結構的占比和某些前綴的的 key 占比情況:
源碼地址
安裝參考
安裝步驟:
Linux amd64
$ wget https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-linux -O /usr/local/bin/rdr
$ chmod +x /usr/local/bin/rdr

MacOS
$ curl https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-darwin -o /usr/local/bin/rdr
$ chmod +x /usr/local/bin/rdr

Windows # 瀏覽器下載下面鏈接,在點擊運行
https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-windows.exe

rdr 路徑:/usr/local/bin/rdr
/usr/local/bin/rdr show -p 8080 dump.rdb
/usr/local/bin/rdr keys dump.rdb
已 mac為例:
下載下來的文件就是二進制文件,可以直接使用 ./rd-darwin
用 web頁面查看數據分析:
./rdr-darwin show -p 8080 ~/Downloads/dump.rdb
直接訪問: localhost:8080即可看到 web分析結果,類似於:

查看所有的redis key
./rdr keys example.rdb


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM