您的位置:首页 > 数据库 > Redis

迁移数据到redis-cluster

2017-01-09 10:14 246 查看
旧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文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cluster redis 迁移数据