Redis-dump从安装、备份到恢复一条龙

今天有个环境要迁移,发现redis都是内网VPC隔离的,没法用同步工具,只能用导出备份、再还原备份的方式迁移。网上找了一圈Redis-dump的安装使用方法,发现总有些坑,索性就写一篇文案吧,希望能帮到需要的人。

一、Ruby环境安装

Redis 是一款开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。在日常使用中,数据的备份和恢复是不可缺的一环。Redis-dump 是一个基于 Ruby 实现的工具,用于 Redis 数据的导入导出。由于 Redis-dump 是基于 Ruby 的,因此在使用之前需要先安装 Ruby 环境。

1、安装需要的依赖

yum install ruby rubygems ruby-devel -y

2、配置秘钥

curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -

3、安装rvm

curl -sSL https://get.rvm.io | bash -s stable

 看到这么界面说明已经安装成功,可以通过 `rvm help` 进行查看。

 4、重载配置文件,使配置生效

source /etc/profile.d/rvm.sh

  5、安装Ruby 2.6.1版本,且设置为默认

因为redis-dump 0.6.0需要Ruby =>2.6.1,所以选择安装2.6.1版本。

rvm install 2.6.1
rvm use 2.6.1 --default

 6、rvm常用命令分享

# 列出已知的 ruby 版本
rvm list known
 
# 安装指定版本的 ruby
rvm install 2.6.1
 
# 更新 rvm
rvm get stable
 
# 切换到指定 ruby 版本
rvm use 2.6.1
 
# 设置指定 ruby 版本为默认版本
rvm use 2.6.1 --default
 
# 查询已经安装的 ruby 版本
rvm list
 
# 卸载指定的 ruby 版本
rvm remove 2.6.1

二、安装redis-dump

1、配置使用国内源:

gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/

2、安装redis-dump

gem install redis-dump -V

安装是出现如下异常:

ERROR:  Error installing redis-dump:
        The last version of uri-redis (>= 0.4.0) to support your Ruby & RubyGems was 0.4.2. Try installing it with `gem install uri-redis -v 0.4.2` and then running the current command again
        uri-redis requires Ruby version >= 2.6.8. The current ruby version is 2.6.1.33.

3、按照提示安装 uri-redis 0.4.2

gem install uri-redis -v 0.4.2

4、再次执行安装命令:

gem install redis-dump -V

 直到安装成功。

三、redis-dump的导出、导入

1、redis-dump导出备份

# redis没有设置密码,直接数据导出
#redis-dump -u <redis_host>:<redis_port> > redis.json
redis-dump -u 127.0.0.1:6379 > redis.json

# 导出指定数据库中的数据,例子是2号库
#redis-dump -u <redis_host>:<redis_port> -d <redis_db> > redis1.json
redis-dump -u 127.0.0.1:6379 -d 2 > redis1.json

# 对于Redis设置了密码的导出方式
#redis-dump -u :<redis_password>@<redis_host>:<redis_port> > redis.json
redis-dump -u :123456@127.0.0.1:6379 > redis.json
  • <redis_host>:Redis 服务器地址,默认为 127.0.0.1
  • <redis_port>:Redis 服务器端口,默认为 6379
  • <redis_db>:要备份的 Redis 数据库编号,默认为 0
  • <redis_password>:Redis 服务器密码,如果 Redis 未设置密码,则无需此参数。

2、redis-load 还原备份

# 导入没有设置密码的Redis中
cat redis.json | redis-load
# 或者
< redis.json redis-load

# 将备份导入到2号DB中,目标库带密码的
#cat data.json | redis-load -u :<redis_password>@<redis_host>:<redis_port> -d <redis_db>
cat redis2.json | redis-load -u :123456@127.0.0.1:6379 -d 2
# 或者
#< redis2.json redis-load -u <redis_host>:<redis_port> -a <redis_password> -d <redis_db>
< redis2.json redis-load -u 127.0.0.1:6379 -a 123456 -d 2

# 要是命令是因为 utf-8 格式报错时,需要加上 `-n` 参数
cat data2.json | redis-load -n -u 127.0.0.1:6379 -a 123456 -d 2
  • <redis_host>:Redis 服务器地址,默认为 127.0.0.1。
  • <redis_port>:Redis 服务器端口,默认为 6379。
  • <redis_db>:要备份的 Redis 数据库编号,默认为 0。
  • <redis_password>:Redis 服务器密码,如果 Redis 未设置密码,则无需此参数。

四、不重要的总结

Redis-dump作为一个轻量级的Redis数据备份和恢复工具,具有简单易用、快速高效的特点。

通过本文的分享,希望能帮助你避开一些坑,少走有一些弯路。

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tw.Src

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值