由于redis的服务器即将到期,暂时没有续费的打算,所以需要对redis的数据进行迁移,网上查询了很多种redis数据迁移的方法,比如通过Redis-Dump
的方式、migrate
的方式,甚至可以通过业务代码
的方式进行redis数据的迁移。本文主要介绍通过redis提供的save方法进行数据迁移
操作步骤
1. 原redis服务器
登录redis服务器,然后通过redis的客户端进行连接redis,命令如下:
[root@izm5ea99qngm2vazfs49svz ~]# redis-cli
127.0.0.1:6379>
如果没有将redis-cli安装成服务,可以进入redis的src目录下进行客户端的连接
连接成功后,我们可以通过下面的命令找到redis的文件存放目录
127.0.0.1:6379> CONFIG GET dir
如果redis设置过密码的话,则这个时候会提示(error) NOAUTH Authentication required.
的错误,我们只需要输入密码就行了,如下:
127.0.0.1:6379> CONFIG GET dir
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth password // password是你的redis的密码
密码输入过后,再次输入CONFIG GET dir
就能查看到redis的文件存放目录在/var/lib/redis
下:
127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/var/lib/redis"
127.0.0.1:6379>
下面我们查看一下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@izm5ea99qngm2vazfs49svz ~]# redis-cli
127.0.0.1:6379> save #数据备份
127.0.0.1:6379> #退出
这个时候我们可以在redis的文件存放目录/var/lib/redis
目录下看到刚刚备份的dump.rdb
文件
也可以通过BGSAVE
的方式进行保存,该命令在后台执行, 命令基本和上面一致
127.0.0.1:6379> BGSAVE
Background saving started
2. 目标redis服务器
登录目标redis服务器,我们先停止redis服务:
service redis stop #停止redis服务
然后进入redis的文件存放目录/var/lib/redis
,把刚刚备份的dump.rdb
文件替换该目录下的dump.rdb
文件(建议先备份当前目录下的dump.rdb
文件),重启redis服务
service redis start #启动redis服务
到此,redis数据迁移完成