redis有兩種持久化方式,Rdb 和 Aof
RDB方式是指在指定的時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫(xiě)入磁盤(pán),實(shí)際的操作過(guò)程是fork一個(gè)子進(jìn)程,先將數(shù)據(jù)集寫(xiě)入臨時(shí)文件,寫(xiě)入成功后,再替換之前的文件,用二進(jìn)制壓縮存儲(chǔ)(binlog)。存儲(chǔ)的文件為:dum.rdb
然而dum.rdb使用vim打開(kāi),是一種亂碼,無(wú)法會(huì)意。

所以才需要rdbtools幫助轉(zhuǎn)換。
在哪里找到dum.rdb?
配置rdb目錄中尋找:aof和rdb.dum都在這里

我起初安裝redis,并未執(zhí)行instal_server.sh。


如何安裝rdbtools?
https://github.com/sripathikrishnan/redis-rdb-tools
這里介紹了兩種安裝方式,我使用下面這種
pip install rdbtools python-lzf
使用的前提是要安裝python, 不然pip命令不識(shí)別。
如何安裝python?
https://blog.csdn.net/li_adou/article/details/78377265
我的軟件都是下載到soft目錄,安裝到module目錄。所以在soft目錄執(zhí)行下載命令
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
然后解壓到module目錄。

我在當(dāng)前目錄下創(chuàng)建文件夾python3用來(lái)作為安裝路徑
編譯:
./configure --prefix=/opt/module/Python-3.6.0/python3
安裝:
make && make install
創(chuàng)建新版本的軟連接:
在 /usr/bin/目錄下,有一個(gè)python,這個(gè)python要使用我們剛安裝的python.
mv /usr/bin/python /usr/bin/python_bak
ln -s /opt/module/Python-3.6.0/python3 /usr/bin/python
配置環(huán)境變量:vim /erc/profile

使其生效
source profile
使用pip命令時(shí),仍不識(shí)別,需要使用pip3.
于是使用pip3安裝rdbtools
pip3 install rdbtools python-lzf
安裝時(shí)報(bào)了一個(gè)錯(cuò)誤:

按著提示執(zhí)行升級(jí)命令,升級(jí)好后,使用pip命令進(jìn)行安裝。
pip install rdbtools python-lzf
安裝好rdbtools后,我在/opt/module/redis-4.0.2/redis/6379目錄下執(zhí)行,得到可memory.csv文件。
rdb -c memory dump.rdb > memory.csv

其中:size_in_bytes 內(nèi)存的大小,由此可以查詢內(nèi)存最高的key
num_elements 成員個(gè)數(shù)
接下來(lái)便可以通過(guò)sql來(lái)處理了。