redis 单机数据迁移到 redis cluster

数据迁移

1、集群部署成功后,进入其中一台redis,以集群方式启动

-a 密码
-c 以集群方式

redis-cli -a 123456 -c

2、查看并记录集群信息

记录集群id ,ip,角色。后续会使用

root@d0da7b1b7296:/data# redis-cli -a 123456 -p 6379 cluster nodes

689ead39f3d822f4f3780aa5463910e6920df846 172.22.0.6:6379@16379 slave ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 0 1677114423000 7 connected
ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 172.22.0.2:6379@16379 master - 0 1677114424182 7 connected 10923-16383
e43b53e920f7304ed897ee0245a8995c502dff6b 172.22.0.5:6379@16379 slave 5b0f1e7045b06c1e12fd551372117d494344f8e7 0 1677114422170 11 connected
5b0f1e7045b06c1e12fd551372117d494344f8e7 172.22.0.4:6379@16379 master - 0 1677114422000 11 connected 0-5460
68c10a7b1d99798bba9aeb487b67527d725d8508 172.22.0.3:6379@16379 myself,master - 0 1677114421000 12 connected 5461-10922
59021d423c85cb3b7298319230ae63e1f0945950 172.22.0.7:6379@16379 slave 68c10a7b1d99798bba9aeb487b67527d725d8508 0 1677114423175 12 connected

记录每个主节点的slot 数量

root@d0da7b1b7296:/data# redis-cli -a 123456 --cluster info 172.22.0.2:6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
172.22.0.2:6379 (ac4258ae...) -> 0 keys | 5461 slots | 1 slaves.
172.22.0.4:6379 (5b0f1e70...) -> 0 keys | 5461 slots | 1 slaves.
172.22.0.3:6379 (68c10a7b...) -> 0 keys | 5462 slots | 1 slaves.

3、迁移其他主节点的slot到其中一个主节点

示例中选择的是 ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 172.22.0.2:6379@16379
–cluster-slots 5462 迁移的slot 数量


redis-cli -a 123456 --cluster reshard 172.22.0.2:6379 --cluster-from 5b0f1e7045b06c1e12fd551372117d494344f8e7 --cluster-to ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 --cluster-slots 5461 --cluster-yes
redis-cli -a 123456 --cluster reshard 172.22.0.2:6379 --cluster-from 68c10a7b1d99798bba9aeb487b67527d725d8508 --cluster-to ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 --cluster-slots 5462 --cluster-yes

3、关闭集群。放入单机redis生成的 dump.rdb 到其中一条 master节点,且只启动该节点redis,观察数据是否正确导入。

redis-cli -a 123456

查看数据是否导入

4、重新设置主节点的slot

redis-cli -a 123456 --cluster reshard 172.22.0.2:6379 --cluster-from ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 --cluster-to 5b0f1e7045b06c1e12fd551372117d494344f8e7 --cluster-slots 5461 --cluster-yes
redis-cli -a 123456 --cluster reshard 172.22.0.2:6379 --cluster-from ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 --cluster-to 68c10a7b1d99798bba9aeb487b67527d725d8508 --cluster-slots 5462 --cluster-yes

如果集部署在同一节点,可能出现前面迁移slot后,master 变成 slave,此时执行第4步是会报错的,需要先删除节点,重新加入

ERR Please use SETSLOT only with masters
示例


#删除原主节点 68c10a7b1d99798bba9aeb487b67527d725d8508  172.22.0.3:6379
redis-cli -a 123456 --cluster del-node 172.22.0.2:6379 68c10a7b1d99798bba9aeb487b67527d725d8508

#重新加入 master 节点 172.22.0.3:6379 是新加入节点,172.22.0.2:6379 是集群中已存在的节点
redis-cli -a 123456 --cluster add-node 172.22.0.3:6379 172.22.0.2:6379

#删除从节点59021d423c85cb3b7298319230ae63e1f0945950  172.22.0.7:6379
redis-cli -a 123456 --cluster del-node 172.22.0.2:6379 59021d423c85cb3b7298319230ae63e1f0945950

#重新加入节点172.22.0.7:6379,且设置为68c10a7b1d99798bba9aeb487b67527d725d8508的从节点
redis-cli -a 123456 --cluster add-node 172.22.0.7:6379 172.22.0.2:6379 --cluster-slave --cluster-master-id 68c10a7b1d99798bba9aeb487b67527d725d8508

... 同样处理另外二个节点

再次查询cluster 节点信息,已经和之前一致

689ead39f3d822f4f3780aa5463910e6920df846 172.22.0.6:6379@16379 slave ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 0 1677114423000 7 connected
ac4258ae8d3b252205f0b13ed0ee86a311ea0c07 172.22.0.2:6379@16379 master - 0 1677114424182 7 connected 10923-16383
e43b53e920f7304ed897ee0245a8995c502dff6b 172.22.0.5:6379@16379 slave 5b0f1e7045b06c1e12fd551372117d494344f8e7 0 1677114422170 11 connected
5b0f1e7045b06c1e12fd551372117d494344f8e7 172.22.0.4:6379@16379 master - 0 1677114422000 11 connected 0-5460
68c10a7b1d99798bba9aeb487b67527d725d8508 172.22.0.3:6379@16379 myself,master - 0 1677114421000 12 connected 5461-10922
59021d423c85cb3b7298319230ae63e1f0945950 172.22.0.7:6379@16379 slave 68c10a7b1d99798bba9aeb487b67527d725d8508 0 1677114423175 12 connected

重新按步骤4 迁移节点

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值