迁移redis数据库中的数据到另一台服务器
方案一
下面我使用的redis是用docker安装的,不是通过下载安装包安装的,所以和我安装方式不一样的小伙伴可以不看,因为很多操作是基于docker的
话不多说,直接开搞!
1.首先一定要确保两台服务器上面的redis版本要一致,不然会失败。查看redis版本
docker exec -it <自己redis容器的实例ID> redis-server --version
2.找到redis的dump.rdb文件,如果不知道路径可以使用一下命令
redis-cli -a bshark1227Sun config get dir
上面的命令如果你的redis.conf配置文件中设置了密码,那么就要填-a <你的redis密码>,没有设置就直接redis-cli config get dir。执行结果如下
3.去到你自己的redis容器里面将dump.rdb文件拷贝到宿主机里面
a)在宿主机里面创建一个目录来接收拷贝的文件
在根路径下面创建一个redis目录
mkdir /redis
b)拷贝文件到根路径下面的redis目录里面
docker cp <你自己的redis容器实例ID>:/home/gaize/redis/dump.rdb /redis
c) 查看是否有该文件
4.一定要停掉目标服务器上面的redis
一定要停掉redis服务,因为dump.rdb文件时刻都在更新,你即使将拷贝的dump.db放进去以后也会被跟新掉。当然如果你连redis服务都没有那么你就不用操心了。
5.将该dump.rdb文件发送到另一台服务器中,这一步就不用我介绍了吧,直接用微信发送,然后将这个文件放在另一台服务器的redis的data目录中。因为我使用了容器卷,所以我将它放在宿主机下面的相关目录中
我这边是做了一个映射的,可以看一下的我容器创建命令:
docker run -p 6379:6379 --name redis --privileged=true
-v /tmp/app/redis/redis.conf:/etc/redis/redis.conf
-v /tmp/app/redis/data:/data
-d redis:7.0.8 redis-server /etc/redis/redis.conf
6.重新启动redis服务
docker restart <你自己redis容器实例ID>
7.进入redis容器实例里面检查数据
docker exec -it <你自己redis容器实例ID> /bin/bash
redis-cli
后续可能会跟新其他方案 !!!