redis有两种持久化方式,Rdb 和 Aof
RDB方式是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际的操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储(binlog)。存储的文件为:dum.rdb
然而dum.rdb使用vim打开,是一种乱码,无法会意。
所以才需要rdbtools帮助转换。
在哪里找到dum.rdb?
配置rdb目录中寻找:aof和rdb.dum都在这里
我起初安装redis,并未执行instal_server.sh。
如何安装rdbtools?
https://github.com/sripathikrishnan/redis-rdb-tools
这里介绍了两种安装方式,我使用下面这种
pip install rdbtools python-lzf
使用的前提是要安装python, 不然pip命令不识别。
如何安装python?
https://blog.csdn.net/li_adou/article/details/78377265
我的软件都是下载到soft目录,安装到module目录。所以在soft目录执行下载命令
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
然后解压到module目录。
我在当前目录下创建文件夹python3用来作为安装路径
编译:
./configure --prefix=/opt/module/Python-3.6.0/python3
安装:
make && make install
创建新版本的软连接:
在 /usr/bin/目录下,有一个python,这个python要使用我们刚安装的python.
mv /usr/bin/python /usr/bin/python_bak
ln -s /opt/module/Python-3.6.0/python3 /usr/bin/python
配置环境变量:vim /erc/profile
使其生效
source profile
使用pip命令时,仍不识别,需要使用pip3.
于是使用pip3安装rdbtools
pip3 install rdbtools python-lzf
安装时报了一个错误:
按着提示执行升级命令,升级好后,使用pip命令进行安装。
pip install rdbtools python-lzf
安装好rdbtools后,我在/opt/module/redis-4.0.2/redis/6379目录下执行,得到可memory.csv文件。
rdb -c memory dump.rdb > memory.csv
其中:size_in_bytes 内存的大小,由此可以查询内存最高的key
num_elements 成员个数
接下来便可以通过sql来处理了。