如何解析rdb檔案

2021-10-01 18:02:28 字數 1823 閱讀 7419

相信大家也都或多或少的了解些redis,知道他是記憶體性nosql資料庫。

那麼,疑問也就來了,這種記憶體型資料庫的資料在伺服器宕機後,資料還會恢復嗎?

答案是會恢復的!因為這種記憶體型資料庫也存在它的持久化機制,下面是redis的rdb-持久化觸發條件:

其含義如下:

①900秒內如果至少有1個key的值變化,則儲存

②300秒內如果至少有10個key的值變化,則儲存

③60秒內如果至少有10000個key的值變化,則儲存

實際工作當中有同事讓我copy乙份redis的dump.rdb檔案給他,他要檢視資料。

那麼rdb檔案是如何被解析的呢?使用了什麼工具呢?

這裡就介紹一下最近了解的乙個工具,準確的來說是python的乙個庫【rdbtools】

1.進入到python的相應目錄,比如:d:\python\python36\scripts

2.開啟cmd命令框

3.輸入指令:pip install rdbtools

4.安裝完成後在cmd中輸入指令:rdb 並觀察,若有如下圖所示則為安裝成功

1.進入到dump.rdb檔案所在目錄並開啟cmd,輸入如下指令

rdb --command json dump.rdb > dump.json
執行時會報錯:提示需要安裝python-lzf依賴

同樣進入python的目錄,比如:d:\python\python36\scripts,開啟cmd並輸入:pip3 install python-lzf

再次執行解析rdb的指令即可!下面是轉格式後的結果:

-h, –help #顯示此幫助訊息並退出;

-c file, –command=file #指定rdb檔案;

-f file, –file=file #指定匯出檔案;

-n dbs, –db=dbs #解析指定資料庫,如果不指定預設包含所有;

-k keys, –key=keys #指定需要匯出的key,可以使用正規表示式;

-o not_keys, –not-key=not_keys #指定不需要匯出的key,可以使用正規表示式;

-t types, –type=types #指定解析的資料型別,可能的值有:string,hash,set,sortedset,list;可以提供多個型別,如果沒有指定,所有資料型別都返回;

-b bytes, –bytes=bytes #限制輸出key大大小;

-l largest, –largest=largest #根據大小限制的top key;

-e escape, –escape=escape #指定輸出編碼,預設raw;

3.生成記憶體報告輸入入下指令:

rdb -c memory dump.rdb --bytes 128 -f dump_memory.csv
在同級目錄下生成檔案dump_memory.c

如何解析 redis 的 rdb 檔案

目錄常見問題 faq 參考pip install rdbtools python lzf或者 git clone cd redis rdb tools sudo python setup.py installusage usage rdb options path to dump.rdb examp...

ios中如何解析xml檔案

ios中如何解析xml檔案 兩種方法 1.ios中已有的nsxmlparse類 2.google的gdataxml也是基於libxml2的,因此在使用gdataxml之前,你需要先 匯入libxml2。這裡詳解ios中的nsxmlparse nsxmlparser 實現的是sax方法解析xml檔案。...

rosbag檔案如何解析出來

1 cd x 進入bag所在路徑 2 rosbag info bag 檢視rosbag的資訊 如下圖所示 解析資料 獲得帶時間戳的點雲資料 1 rosrun pcl ros bag to pcd 此處就是輸入pcl ros,之前以為該項是包的名字,心塞塞 獲得帶時間戳的影象資料 法1如下 能一次性沒...