迁移数据到redis-cluster
旧redis:
192.168.1.204 192.168.1.205 分别存放着不同的key
redis-cluster:
Master:192.168.1.200 192.168.1.202 192.168.1.203
Slave: 192.168.1.206 192.168.1.207 192.168.1.208
模拟redis离线迁移,即需要先断开所有客户端请求
一、准备旧redis:
1.修改配置文件,指定AOF文件路径
dir /etc/redis/ //修改redis的工作目录
appendfilename "appendonly.aof" //会在工作目录中生成aof文件
2. 准备key
3. 导出key为AOF文件
BGREWRITEAOF
二、准备redis-cluster:
1.修改配置文件,指定AOF文件路径
dir /etc/redis/
2. 创建redis-cluster
3. 关闭redis-cluster,替换AOF文件
204节点的AOF文件替换200节点
205节点的AOF文件替换202节点
4. 重启redis-cluster
5. 执行修复操作
redis-trib.rb fix192.168.1.200:6379 //指定集群内的任一节点即可
redis-trib.rb check 192.168.1.200:6379 //检查集群状态
6. 迁移结果
注:
1. 使用此方法,新的redis-cluster中的master节点要大于等于旧redis-master节点的数量
2. 官方文档中,建议在新建redis-cluster的时候先不要创建slave节点,导入数据后再创建slave节点。可以使用redis-trib.rbcreate --replicas 0 192.168.1.200:6379 192.168.1.202:6379192.168.1.203:6379 来创建只有3个master节点的redis-cluster
迁移方法二:
redis-trib.rb import --from 192.168.1.204:6379192.168.1.200:6379
redis-trib.rb import --from 192.168.1.205:6379192.168.1.200:6379
//直接使用脚本,分别从两台旧redis服务器导入key到集群中,同时会清除旧redis服务器的所有key
注:
1.使用--copy 选项可以保存旧redis上的key
2.使用--replace 选项可以替换集群中相同名称的key,如果不使用,此类key不会被导入
3.如果旧redis的版本是2.8的,导入速度会很慢,可以先把该redis升级为3.0以上再执行命令导入
4.迁移数据前记得先导出并备份AOF文件
转载于:https://blog.51cto.com/362475097/1890301