使用 redis-dump 导出、导入、还原数据

redis的备份和还原,借助第三方的工具,redis-dump

一、debian安装 ruby 和 rubygem

查看可用版本

apt-cache policy ruby

安装,我装的是 ruby3.0,装完之后自带 rubygem ,可直接使用

apt-get install ruby ruby-dev -y

二、Centos7安装 ruby 和 rubygem

yum -y install zlib-devel openssl-devel

2.1、安装ruby

ruby下载地址https://www.ruby-lang.org/zh_cn/downloads/

我下载的是 2.6.0 版本

wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.gz

ruby安装教程:

参考:

centos7.2 64位--ruby的安装与卸载---想安装什么版本就安装什么版本_安装了两个版本的ruby_四大天王之一的博客-CSDN博客先吐槽 , 网上这么多教程,没一个好使 。。。渣渣。。。。。先安装(一定要装): yum install gcc-c++看正文:先教你们怎么下载(网址在这里不用谢我) : https://cache.ruby-lang.org进去了之后按我说的目录自己找想要的版本 : /pub/ruby/这里面什么版本都有 !!! 我是centos 也就是说linux下载,我就喜欢最新版 !!..._安装了两个版本的rubyicon-default.png?t=N7T8https://blog.csdn.net/chuxin_mm/article/details/81639305

关键步骤:

tar -xvf ruby-2.6.0.tar.gz

cd ruby-2.6.0
mkdir -p /usr/local/ruby
./configure --prefix=/usr/local/ruby

如有必要可指定 openssl 目录,1.1.1 版本 openssl 安装点我查看

./configure --prefix=/usr/local/ruby --with-openssl-dir=/usr/local/openssl
make && make install
ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby 

测试是否安装成功:

ruby -v
2.2、手动安装rubygems

三、安装 redis-dump

./gem install redis-dump -v 0.4.0

./gem install redis-dump -V

如果报错提示 ruby 版本过低,则先安装以下内容(一般都会报错,可先直接执行以下两条命令

./gem install uri-redis -v 0.4.2
./gem install yajl-ruby -v 1.4.1

设置软连

ln -s /usr/local/ruby/bin/redis-dump /usr/local/bin/redis-dump
ln -s /usr/local/ruby/bin/redis-load /usr/local/bin/redis-load

四、报错解决办法:

4.1、zlib报错

ERROR: Loading command: install (LoadError)
 cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass
解决办法:
yum -y install zlib-devel
进入ruby源码文件夹, 安装ruby自身提供的zlib包
cd ruby-2.5.1/ext/zlib
ruby ./extconf.rb
make
make install

 执行make,若出现: make: *** 没有规则可以创建“****.o”需要的目标“/include/ruby.h”,停止。在Makefile 顶部中的增加 top_srcdir = ../..

4.2、openssl报错

Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
 解决办法:
yum install openssl-devel -y
进入ruby源码文件夹
cd ruby-2.5.1/ext/openssl
ruby ./extconf.rb
make
make install

执行make,若出现: make: *** 没有规则可以创建“****.o”需要的目标“/include/ruby.h”,停止。在Makefile 顶部中的增加 top_srcdir = ../.. 

五、redis-dump导入导出数据

安装完成后 redis-dump,redis-load 工具在 ruby(我的是 /usr/local/ruby/bin) 所在目录下,可以设置软连接,就可以直接使用了

[root@localhost bin]# ln -s /usr/local/ruby/bin/redis-dump /usr/local/bin/redis-dump
[root@localhost bin]# ln -s /usr/local/ruby/bin/redis-load /usr/local/bin/redis-load
$ redis-dump -u 127.0.0.1:6379 > db_full.json
$ redis-dump -u 127.0.0.1:6379 -d 15 > db_db15.json
 
$ < db_full.json redis-load
$ < db_db15.json redis-load -d 15
$ < db_db15.json redis-load -u 127.0.0.1:6380 -d 15
# 这里需要注意如果你导出的DB与导入的DB不一致,则会导入失败
# OR
$ cat db_full | redis-load
$ cat db_db15.json | redis-load -d 15
$ cat db_db15.json | redis-load -u 127.0.0.1:6380 -d 15
 
# You can specify the redis URI via an environment variable
$ export REDIS_URI=127.0.0.1:6379
$ redis-dump

导入数据时原有的不存在导入文件的数据不会删除,已经存在导入文件重复的key会被覆盖

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值