redis数据导出导入
1.结构
库 | ip | dir地址 |
---|---|---|
源库 | 192.168.0.15 | /usr/local/redis/ |
目标库 | 192.168.0.174 | /usr/local/redis/ |
1.1 源服务器
进入客户端,找出dir地址
[root@localhost redis]# redis-cli
127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/redis"
如果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的密码
通过 save的方式直接对此时的数据进行备份,命令如下:,生产dump.rdb文件就是数据文件了
127.0.0.1:6379> save
OK
127.0.0.1:6379>
[root@localhost redis]# ls
dump.rdb redis-cli redis.conf redis-server
1.2 目标服务器
登录目标redis服务器,我们先停止redis服务:
[root@localhost redis]# redis-cli shutdown
1.3 两台linux服务器传输文件,源服务器操作,scp 命令可以自行百度查询
[root@localhost redis]# scp dump.rdb root@192.168.0.174:/usr/local/redis/
root@192.168.0.174's password:
dump.rdb 100% 156 234.7KB/s 00:00
1.4 目标服务器,启动服务器
[root@localhost redis]# ./redis-server ./redis.conf
然后进入redis的文件存放目录/var/lib/redis,把刚刚备份的dump.rdb文件替换该目录下的dump.rdb文件(建议先备份当前目录下的dump.rdb文件),重启redis服务,不知道dir目录可以通过:CONFIG GET dir查找
没有问题的话,目标服务器数据已经更新了
我因为传输文件时,目标服务器没有停服务,导致数据没有更新,所以要先停目标服务器,再传输文件