centos7.2系统redis持久化rdb数据转csv
背景:
今天出现redis因为内存占用过高,导致服务挂掉的情况,所以需要排查到底是哪个key值过大导致内存占用过大,需要将备份的rdb格式数据转化为csv格式。
1、先使用bgsave命令可持久化redis数据(生成rdb文件)
Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
注意:如果目前redis占用内存是4G,那么在bgsave后因为会fork出一个新的进程,所以redis占用内存会到8G,这里需要考虑机器物理内存大小,以免在备份数据库时造成redis服务挂掉*
$ /data/service/redis/redis-3.0.5/src/redis-cli -p 6303
127.0.0.1:6303> BGSAVE
Background saving started
这样就会生成rdb文件,根据自己的情况找到rdb文件生成路径
2、安装redis-rdb-tools工具
# yum install python-pip -y
# pip install --upgrade pip
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rdbtools
# yum install python-devel
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-lzf
3、rdb转csv
rdb -c memory dump_6303.rdb > /home/yukw/result.csv
好了,这就是centos7系统redis持久化rdb数据转csv的方法了,如有问题可与博主一起交流讨论!