1. 程式人生 > 其它 >Redis-rdb-tools與rdr工具學習與使用

Redis-rdb-tools與rdr工具學習與使用

Redis-rdb-tools與rdr工具學習與使用


簡要說明

  • rdb工具是python寫的一套工具,可以分析dump檔案,獲取key等資訊.
  • rdb其實有一套rdb-profiler工具, 能夠匯出為html檔案,但是發現已經太久了已經無法解析了.
  • rdr 工具是雪球開源的一套簡易的redis dump檔案分析工具, 能夠簡要進行展示較大值的key
  • rdr 的命令簡單,但是今天發現他的資料值並不是非常精確.這裡也總結一下,放在最後面.

rdb 工具簡要說明

  • 安裝
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
# 安裝必須的部分元件
# 注意 我選用了之前離線安裝python3以及pip的目錄. 可以直接使用相對路徑進行安裝和處理
cd /opt/python3/bin
./pip install rdbtools -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 注意編譯好了 再其他環境上可以複製整個python3的目錄.用來使用.
  • 這邊引用一下之前寫過的內容
https://mp.weixin.qq.com/s?__biz=MzU2MTA2MzQyNw==&mid=2247484342&idx=1&sn=a82bcff79faabf6ed308717bb46544f5&chksm=fc7f30dacb08b9cc7d19ec7ed7b03bde3cb52cd8bf5cb07bb68b4acab5a2b7576a238ead90dd&token=55803608&lang=zh_CN#rd

  • 簡單使用-獲取redis的dump檔案
第一步修改獲取python3 剛才的資料夾 解壓縮到 /opt/ 目錄下面
第二步修改環境變數 echo 'PATH=$PATH:/opt/python3/bin/' > /etc/profile.d/python3.sh
第三步是環境變數生效: source /etc/profile.d/python3.sh
第四步生成redis的資料檔案: 
redis-cli
config get dbfilename
config get dir
# 獲取相關的目錄檔案
save 
# 或者使用bgsave 
# 注意bgsave 不會阻斷當前程序, 但是會fork 一個同樣redis使用記憶體的程序來儲存.

  • 簡單使用-簡單分析以及命令
# 分析出來所有的鍵值對資訊
rdb -c memory /dump.rdb -f /redis.txt
# 分析不同型別鍵值對的數量
cat /redis.txt |awk -F "," '{print $2}' |sort |uniq -c |sort -k1hr
# 最大的十個values對應的key以及型別 大小KB
cat /redis.txt |awk -F "," '{print $4/1024" "$2" "$3 }' |sort -k1hr |head -n 10
  • 這裡其實還有一個命令可以分析一下 client的簡直對資訊
redis-cli client list |awk '{print $18}' |sort |uniq -c |sort -k1hr

第二部分簡單寫一下 rdr

rdr的簡單使用


簡單說明

  • rdr 全名 redis database reveal
  • 是雪球在github開源的一個redis資料庫分析軟體.
  • 操作方法時通過redis的dump.rdb檔案解析出來鍵值對的多少以及分佈.

獲取

  • 下載地址為:https://github.com/xueqiu/rdr
  • 下載非常簡單. 直接後去即可.
  • 我這邊將 rdr-linux 放置到了/usr/bin目錄下並且改名為/rdr 增加執行許可權就完成安裝.

redis 獲取 dump檔案

  • rdr工具解析的是redis的dump檔案.
  • redis的dump檔案可以通過save欄位進行處理, 也可以手工獲取.
  • 我這邊為了效能都是不允許儲存的獲取dump檔案的方式為
redis-cli
save 
# 獲取儲存目錄和名字的方法
config get dir
config get dbfilename
# 如果記不住可以使用 config get * 來過濾檢視.

簡要分析

  • 執行分析的命令很簡單
    rdr show -p 8888 /dump.rdb
  • 然後開啟網頁就可以檢視

redis 的stat 命令

  • rdr 解析的是key values 等的資訊
  • stat 命令可以檢視連結等資訊.
redis-cli --stat -i 3
# 注意這個命令是通過陳老師那邊獲取到的
可以檢視記憶體 連線數 以及請求數量 -i 指代重新整理時間 單位為秒數
可以比較簡單的檢視應用啟動過程中的連線記憶體資料.
也可以看到key value值的數目.
rdr 是進行鍵值對分析的 stat 是實時分析用的.