redis-dump方式

  1. #redis-dump安装yum install ruby rubygems ruby-devel -y
  2. gem sources --add http://gems.ruby-china.com/ --remove https://rubygems.org/
  3. [root@docker ~]# gem sources -l
  4. *** CURRENT SOURCES ***
  5. http://gems.ruby-china.com/ #确定只剩这一个
  6. [root@docker ~]# curl -L get.rvm.io | bash -s stable
  7. gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
  8. 再执行一遍:
  9. [root@docker ~]# source /etc/profile.d/rvm.sh
  10. [root@docker ~]# rvm -vrvm 1.29.8 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

列出已知的ruby包并安装

  1. [root@docker ~]# rvm list known
  2. [root@docker ~]# rvm install 2.4

安装redis-dump

  1. gem install redis-dump -V

导入并导出

  1. redis-dump导出
  2. [root@ ~]# redis-dump -u :password@172.20.0.1:6379 > 172.20.0.1.json
  3. redis-load导入
  4. [root@ ~]# cat 172.20.0.1.json | redis-load -u :password@172.20.0.2:6379
  1. redis-dump -u 127.0.0.1:6379 > db.json //导出数据
  2. redis-load -u 127.0.0.1:6379 < test.json redis-load //导入数据

aof方式

  1. 源实例生成aof数据 ```shell

    清空上文目标实例全部数据

    redis-cli -h 127.0.0.1 -a passowrd flushall

源实例开启aof功能,将在dir目录下生成appendonly.aof文件

redis-cli -h 127.0.0.1 -a password config set appendonly yes

  1. 2. 目标实例导入aof数据
  2. ```shell
  3. # 假设appendonly.aof就在当前目录下
  4. redis-cli -h 127.0.0.1 -a passowrd --pipe < appendonly.aof
  5. # 源实例关闭aof功能
  6. redis-cli -h 127.0.0.1 -a password config set appendonly no

rdb文件迁移方式

  1. 原redis 服务器 ```shell 登录redis服务器,然后通过redis的客户端进行连接redis,命令如下: [root@ ~]# redis-cli 127.0.0.1:6379> 注释:如果没有将redis-cli安装成服务,可以进入redis的src目录下进行客户端的连接

连接成功后,我们可以通过下面的命令找到redis的文件存放目录 127.0.0.1:6379> CONFIG GET dir 1) “dir” 2) “/var/lib/redis” 127.0.0.1:6379> 注释:在/var/lib/redis下

下面我们查看一下redis数据备份的触发条件,查看redis配置文件/ect/redis.conf ,可以看到redis数据备份的触发条件为: save 900 1 #900秒内至少有1个key被更改,进行备份 save 300 10 #300秒内至少有300个key被更改,进行备份 save 60 10000 #60秒内至少有10000个key被更改,进行备份

我们可以通过 save的方式直接对此时的数据进行备份,命令如下: [root@ ~]# redis-cli 127.0.0.1:6379> save #数据备份 127.0.0.1:6379> #退出 这个时候我们可以在redis的文件存放目录/var/lib/redis目录下看到刚刚备份的dump.rdb文件

  1. 2. 目标服务器
  2. ```shell
  3. 登录目标redis服务器,我们先停止redis服务:
  4. service redis stop #停止redis服务
  5. 然后进入redis的文件存放目录/var/lib/redis,把刚刚备份的dump.rdb文件替换该目录下的dump.rdb文件
  6. (建议先备份当前目录下的dump.rdb文件),重启redis服务
  7. service redis start #启动redis服务
  8. 到此,redis数据迁移完成