docker安装redis-dump工具

离线安装redis-dump工具

1 场景和问题

1.1 redis-dump工具作用

​ redis-dump可以将redis数据库中的各个slot中的数据导出到文本中,方便迁移备份数据;

1.1 为什么采用redis-dump容器的方式

​ 使用普通的物理机直接安装redis-dump工具,需要下载各种各样的依赖,相对都比较麻烦(例如安装ruby2.2以上版本的依赖),各种rvm依赖包的安装;

​ 使用docker容器单间redis-dump,直接下载依赖安装更简单;

2.下载安装redis-dump工具

2.1 下载镜像

下载地址https://hub.docker.com/r/gaofeng0300/redis-dump

docker pull gaofeng0300/redis-dump:latest

2.2安装

docker run --rm --name fct-redis-dump \
-v /data/my-redis-dump/data:/data \
-v /data/my-redis-dump/dump.rb:/var/lib/gems/2.5.0/gems/redis-dump-0.4.0/lib/redis/dump.rb \
gaofeng0300/redis-dump:latest 

2.3 进入容器,执行redis-dump命令,

(1)导出

redis-dump -u localhost:6379 > ./redis_6379.json

(2)导入

cat ./redis_6379.json | redis-load -u localhost:6379

此时,可能报错。

执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx

解决参考:https://blog.csdn.net/qq_36759224/article/details/100812814

即, 修改dump.rb这个配置文件就可以了;

解决方法:找到 Ruby 安装目录下的 dump.rb 文件,用记事本或者 VS Code 打开

比如我的路径为:E:\Ruby26-x64\lib\ruby\gems\2.6.0\gems\redis-dump-0.4.0\lib\redis\dump.rb

注释掉第 32 行代码: `ps -o rss= -p #{Process.pid}`.to_i # in kb

----我是分割线-----

注意事项说明:
如果出现小数量redis-dump的slot可以down下来,但是部分大数据量的slot槽位,dump的过程中出现killed的提示,多数情况下,都是因为redis-dump容器内存过小的原因导致该问题(只用分配比solt更大的容器资源内存即可解决!)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值