目錄常見問題 faq
參考
pip install rdbtools python-lzf
或者
git clone
cd redis-rdb-tools
sudo python setup.py install
usage: usage: rdb [options] /path/to/dump.rdb
example : rdb --command json -k "user.*" /var/redis/6379/dump.rdb
positional arguments:
dump_file rdb dump file to process
optional arguments:
-h, --help show this help message and exit
-c cmd, --command cmd
command to execute. valid commands are json, diff,
justkeys, justkeyvals, memory and protocol
-f file, --file file output file
-n dbs, --db dbs database number. multiple databases can be provided.
if not specified, all databases will be included.
-k keys, --key keys keys to export. this can be a regular expression
-o not_keys, --not-key not_keys
keys not to export. this can be a regular expression
-t types, --type types
data types to include. possible values are string,
hash, set, sortedset, list. multiple typees can be
provided. if not specified, all data types will be
returned
-b bytes, --bytes bytes
limit memory output to keys greater to or equal to
this value (in bytes)
-l largest, --largest largest
limit memory output to only the top n keys (by size)
-e , --escape
escape strings to encoding: raw (default), print,
utf8, or base64.
-x, --no-expire with protocol command, remove expiry from all keys
-a n, --amend-expire n
with protocol command, add n seconds to key expiry
time
引數解析
-c 執行命令 輸出不同格式的資料
json; 輸出 json 格式的字串 如:
diff; 匯出可供 diff 、kdiff 、 vimdiff 比較的資料
justkeys; 只輸出 key
justkeyvals; 只輸出鍵值對,以空格分隔
memory; 輸出記憶體分布狀態
protocol; 輸出原始的 resp 協議
-f 指定輸出到檔案
-n 指定輸出的 db
-k 指定輸出哪些 key; 可以使用正規表示式, 如:'^users_\d+$'
-o 排除哪些 key; 可以使用正規表示式
-t 指定輸出 value 的型別
-b 指定大於此位元組數的 key 輸出
-l 輸出最大的多少個 key
-e 轉義字串到其他格式
raw 原始字串
utf8 輸出原始 utf8 格式字串
base64 對於二進位制資料來說,可以先 base64 儲存到檔案,然後在程式中 decode 出來
-x 在匯出 resp 協議內容時,去掉過期時間
-a 匯出 resp 協議內容時,給有過期時間的 key 加上幾秒鐘過期時間
rdb --command memory dump.rdb > memory.csv
生成 csv 格式的記憶體報告。包含的列有:
資料庫 id,資料型別,key,記憶體使用量(byte),編碼。記憶體使用量包含 key、value 和其他值,結果:
0,sortedset,page_rank,80,ziplist,1,9
# 使用這個命令會將儲存的 int 值顯示為 json 的字串
> rdb -c json --db 2 --type hash --key "a.*" /var/redis/6379/dump.rdb
[{},}]
> rdb --command diff /var/redis/6379/dump1.rdb | sort > dump1.txt
> rdb --command diff /var/redis/6379/dump2.rdb | sort > dump2.txt
# 使用 diff 軟體檢視 diff
> kdiff3 dump1.txt dump2.txt
> redis-memory-for-key person:1
> redis-memory-for-key -s localhost -p 6379 -a mypassword person:1
key person:1
bytes 111
type hash
encoding ziplist
number of elements 2
length of largest element 8 # hash 中占用記憶體最大的那個 value 的占用位元組數
如何解析rdb檔案
相信大家也都或多或少的了解些redis,知道他是記憶體性nosql資料庫。那麼,疑問也就來了,這種記憶體型資料庫的資料在伺服器宕機後,資料還會恢復嗎?答案是會恢復的!因為這種記憶體型資料庫也存在它的持久化機制,下面是redis的rdb 持久化觸發條件 其含義如下 900秒內如果至少有1個key的值變...
redis中的RDB快照檔案恢復
在redis中我們使用rdb快照檔案恢復資料時,如果我們開啟了redis主從,我們需要先把redis從關掉,然後我們才能來執行redisrdb快照檔案恢復 因為從庫開啟,會導致redis主庫重啟讀取不到rdb檔案,會導致重啟過後rdb檔案是redis初始化的rdb,不是你要恢復的rdb檔案,我們把r...
ios中如何解析xml檔案
ios中如何解析xml檔案 兩種方法 1.ios中已有的nsxmlparse類 2.google的gdataxml也是基於libxml2的,因此在使用gdataxml之前,你需要先 匯入libxml2。這裡詳解ios中的nsxmlparse nsxmlparser 實現的是sax方法解析xml檔案。...