192.168.4.71:7009确实被删除了,这里不仅从集群中把192.168.4.71:7009删除了,另外还远程关闭了这个进程
再次添加这个进程进入集群 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb add-node --slave --master-id 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7009 192.168.4.70:7001 >>> Adding node 192.168.4.71:7009 to cluster 192.168.4.70:7001 >>> Performing Cluster Check (using node 192.168.4.70:7001) M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots:5461 (1 slots) master 1 additional replica(s) M: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots:5462-10922 (5461 slots) master 1 additional replica(s) M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots: (0 slots) master 0 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 0 additional replica(s) S: 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slots: (0 slots) slave replicates fa6cf2a97766685e5b245c052dedb37b0e20bb43 S: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots: (0 slots) slave replicates b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [ERR] Sorry, can't connect to node 192.168.4.71:7009 提示无法连接这个进程,需要在该机器上重新启动这个进程 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb add-node --slave --master-id 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7009 192.168.4.70:7001 >>> Adding node 192.168.4.71:7009 to cluster 192.168.4.70:7001 >>> Performing Cluster Check (using node 192.168.4.70:7001) M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots:5461 (1 slots) master 1 additional replica(s) M: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots:5462-10922 (5461 slots) master 1 additional replica(s) M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots: (0 slots) master 0 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 0 additional replica(s) S: 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slots: (0 slots) slave replicates fa6cf2a97766685e5b245c052dedb37b0e20bb43 S: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots: (0 slots) slave replicates b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. [ERR] Node 192.168.4.71:7009 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0. 再次出现了这个错误,在192.168.4.71上删除nodes.conf这个文件,然后重新启动7009这个进程 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb add-node --slave --master-id 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7009 192.168.4.70:7001 >>> Adding node 192.168.4.71:7009 to cluster 192.168.4.70:7001 >>> Performing Cluster Check (using node 192.168.4.70:7001) M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots:5461 (1 slots) master 1 additional replica(s) M: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots:5462-10922 (5461 slots) master 1 additional replica(s) M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots: (0 slots) master 0 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 0 additional replica(s) S: 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slots: (0 slots) slave replicates fa6cf2a97766685e5b245c052dedb37b0e20bb43 S: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots: (0 slots) slave replicates b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. >>> Send CLUSTER MEET to node 192.168.4.71:7009 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 192.168.4.71:7008. [OK] New node added correctly. [root@redis1 ~]# [root@redis1 ~]# redis-cli -h 192.168.4.70 -p 7001 cluster nodes 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504228997005 11 connected b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504228998006 10 connected 5462-10922 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504228997505 11 connected b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504228996504 3 connected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504228997004 7 connected 0-5460 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave fa6cf2a97766685e5b245c052dedb37b0e20bb43 0 1504228998508 9 connected 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504228998006 10 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504228998508 3 connected 10923-16383 fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 myself,master - 0 0 9 connected 5461 192.168.4.71:7009作为192.168.4.71:7008复制节点被加入集群 以上我们测试的是节点上没有数据的删除,如果节点上有数据,如何删除? 例如:我们这里可以看到192.168.4.70:7001这个节点有一个slot 5461,这样的节点是不可以直接删除的 /opt/redis1/src/redis-trib.rb del-node 192.168.4.70:7001 fa6cf2a97766685e5b245c052dedb37b0e20bb43 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb del-node 192.168.4.70:7001 fa6cf2a97766685e5b245c052dedb37b0e20bb43 >>> Removing node fa6cf2a97766685e5b245c052dedb37b0e20bb43 from cluster 192.168.4.70:7001 [ERR] Node 192.168.4.70:7001 is not empty! Reshard data away and try again. 删除操作的时候提示这个节点不为空,那么如果需要删除这个节点,我们把这个节点上的slot迁移到其他的节点 /opt/redis1/src/redis-trib.rb reshard 192.168.4.70:7001 PS:192.168.4.70:7001这里是集群中任意的一个主节点 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb reshard 192.168.4.70:7001 >>> Performing Cluster Check (using node 192.168.4.70:7001) M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots:5461 (1 slots) master 1 additional replica(s) S: 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slots: (0 slots) slave replicates 631bff889fbb5600febb896d075eeca5a2cd7322 M: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots:5462-10922 (5461 slots) master 1 additional replica(s) M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots: (0 slots) master 1 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 0 additional replica(s) S: 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slots: (0 slots) slave replicates fa6cf2a97766685e5b245c052dedb37b0e20bb43 S: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots: (0 slots) slave replicates b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. How many slots do you want to move (from 1 to 16384)? 1 你需要迁移的slot的数量 What is the receiving node ID? 631bff889fbb5600febb896d075eeca5a2cd7322 接收slot的目标节点的runid Please enter all the source node IDs. Type 'all' to use all the nodes as source nodes for the hash slots. 使用所有节点作为源节点,即可以从所有的节点接收slot Type 'done' once you entered all the source nodes IDs. 在你输入了所有的源节点后,你可以使用done来结束源节点的输入 Source node #1:fa6cf2a97766685e5b245c052dedb37b0e20bb43 输入源节点的名称,这里可以手动输入多个源节点,如果不需要更多了就输入done Source node #2:done Ready to move 1 slots. Source nodes: M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots:5461 (1 slots) master 1 additional replica(s) Destination node: M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots: (0 slots) master 1 additional replica(s) Resharding plan: Moving slot 5461 from fa6cf2a97766685e5b245c052dedb37b0e20bb43 Do you want to proceed with the proposed reshard plan (yes/no)? yes Moving slot 5461 from 192.168.4.70:7001 to 192.168.4.71:7008: [root@redis1 ~]# [root@redis1 ~]# redis-cli -h 192.168.4.70 -p 7001 cluster nodes 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504229504585 11 connected b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504229504585 10 connected 5462-10922 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504229505087 11 connected 5461 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504229503583 3 connected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504229504084 7 connected 0-5460 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504229505087 11 connected 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504229504084 10 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504229503583 3 connected 10923-16383 fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 myself,master - 0 0 9 connected 从这里可以看到,slot 5461确实已经被迁移到了192.168.4.71:7008 [root@redis1 ~]# /opt/redis1/src/redis-trib.rb del-node 192.168.4.70:7001 fa6cf2a97766685e5b245c052dedb37b0e20bb43 >>> Removing node fa6cf2a97766685e5b245c052dedb37b0e20bb43 from cluster 192.168.4.70:7001 >>> Sending CLUSTER FORGET messages to the cluster... >>> SHUTDOWN the node. [root@redis1 ~]# 再次执行删除192.168.4.70:7001的操作,这里可以看到,这个节点被删除了 [root@redis1 ~]# redis-cli -h 192.168.4.70 -p 7002 cluster nodes 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504229832716 11 connected 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 myself,slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 0 2 connected 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504229833218 11 connected 42f150912018aaae13016065c4c4ca6ccb7d167d :0 master,fail,noaddr - 1504227141879 1504227141879 1 disconnected b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504229834218 10 connected 5462-10922 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504229832216 3 connected 10923-16383 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504229834218 6 connected 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504229834218 11 connected 5461 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504229833718 7 connected 0-5460 另外, 经过观察,这个主节点被删除之后,它之前拥有的从节点会自动成为其他主节点的从节点. 检查集群状态: [root@redis1 ~]# /opt/redis1/src/redis-trib.rb check 192.168.4.70:7004 >>> Performing Cluster Check (using node 192.168.4.70:7004) M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots: (0 slots) slave replicates b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d S: 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slots: (0 slots) slave replicates 631bff889fbb5600febb896d075eeca5a2cd7322 M: 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 slots:5461 (1 slots) master 1 additional replica(s) S: 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slots: (0 slots) slave replicates 48c261163414d244d65fb9a70e09de166440da31 M: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots:5462-10922 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 每个分片的slot信息都在master节点上,slave节点slot信息是0,有slave节点的master会显示1 additional replica(s) slave节点会在slave后显示它的主节点的RUNID 通过客户端命令加入集群的方法: 192.168.4.70:7004> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:9 cluster_size:4 cluster_current_epoch:11 cluster_my_epoch:7 cluster_stats_messages_sent:336293 cluster_stats_messages_received:335298 192.168.4.70:7004> cluster nodes 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504231613546 10 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504231613045 3 connected 10923-16383 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504231615050 6 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504231615050 11 connected 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504231613547 11 connected 5461 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504231614047 11 connected 42f150912018aaae13016065c4c4ca6ccb7d167d :0 master,fail,noaddr - 1504167887996 1504167886494 1 disconnected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 myself,master - 0 0 7 connected 0-5460 b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504231614549 10 connected 5462-10922 192.168.4.70:7004> CLUSTER MEET 192.168.4.71 7010 OK 192.168.4.70:7004> cluster nodes 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504231635591 10 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504231636092 3 connected 10923-16383 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504231636593 6 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504231637593 11 connected 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504231635591 11 connected 5461 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504231636593 11 connected 42f150912018aaae13016065c4c4ca6ccb7d167d :0 master,fail,noaddr - 1504167887996 1504167886494 1 disconnected 1b258de471b1beee865eb64592bc98caaa7430c7 192.168.4.71:7010 master - 0 1504231637394 0 connected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 myself,master - 0 0 7 connected 0-5460 b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504231636593 10 connected 5462-10922 192.168.4.70:7004> 看看集群中的redis主从节点的自动切换 192.168.4.70:7004> CLUSTER nodes 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504231753793 10 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504231752891 3 connected 10923-16383 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504231752791 6 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504231753294 11 connected 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504231751691 11 connected 5461 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504231752291 11 connected 42f150912018aaae13016065c4c4ca6ccb7d167d 192.168.4.70:7001 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504231752290 7 connected 1b258de471b1beee865eb64592bc98caaa7430c7 192.168.4.71:7010 master - 0 1504231751691 0 connected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 myself,master - 0 0 7 connected 0-5460 b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504231751691 10 connected 5462-10922 这里192.168.4.70:7003是master节点,192.168.4.70:7006是192.168.4.70:7003的从节点 我们杀掉192.168.4.70:7006这个进程后 192.168.4.70:7006切换成主节点,从10923-16383可以看到,在分片内部192.168.4.70:7003和192.168.4.70:7006实现了自动切换 主节点处理槽,从节点用来复制主节点 192.168.4.70:7005> cluster nodes 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504231964996 11 connected 1b258de471b1beee865eb64592bc98caaa7430c7 192.168.4.71:7010 master - 0 1504231966002 0 connected b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 master - 0 1504231966500 12 connected 10923-16383 b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 myself,master - 0 0 10 connected 5462-10922 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master,fail - 1504231831430 1504231829125 3 disconnected 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504231966500 11 connected 5461 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504231965498 7 connected 0-5460 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504231966002 10 connected 42f150912018aaae13016065c4c4ca6ccb7d167d 192.168.4.70:7001 slave b4a9a578069a3b2a413fcb4125d17c8768b13359 0 1504231965498 12 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504231967002 11 connected 添加节点的时候,先添加成master节点,然后再使用 192.168.4.71:7010> cluster nodes 1b258de471b1beee865eb64592bc98caaa7430c7 192.168.4.71:7010 myself,master - 0 0 0 connected 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504232489980 7 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master,fail - 1504231807707 1504231806105 3 disconnected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504232490983 7 connected 0-5460 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504232489478 11 connected 5461 42f150912018aaae13016065c4c4ca6ccb7d167d 192.168.4.70:7001 slave b4a9a578069a3b2a413fcb4125d17c8768b13359 0 1504232490481 12 connected b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504232490983 10 connected 5462-10922 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 master - 0 1504232490983 12 connected 10923-16383 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504232491483 10 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504232490481 11 connected 192.168.4.71:7010> cluster replicate 192.168.4.70:7006 (error) ERR Unknown node 192.168.4.70:7006 192.168.4.71:7010> cluster replicate 192.168.4.70 (error) ERR Unknown node 192.168.4.70 192.168.4.71:7010> cluster replicate b4a9a578069a3b2a413fcb4125d17c8768b13359 这里的nodeid是主节点的runid OK 192.168.4.71:7010> cluster nodes 1b258de471b1beee865eb64592bc98caaa7430c7 192.168.4.71:7010 myself,slave b4a9a578069a3b2a413fcb4125d17c8768b13359 0 0 0 connected 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave 48c261163414d244d65fb9a70e09de166440da31 0 1504232547145 7 connected 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master,fail - 1504231807707 1504231806105 3 disconnected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504232548648 7 connected 0-5460 631bff889fbb5600febb896d075eeca5a2cd7322 192.168.4.71:7008 master - 0 1504232548648 11 connected 5461 42f150912018aaae13016065c4c4ca6ccb7d167d 192.168.4.70:7001 slave b4a9a578069a3b2a413fcb4125d17c8768b13359 0 1504232548648 12 connected b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 master - 0 1504232547145 10 connected 5462-10922 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 master - 0 1504232548147 12 connected 10923-16383 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slave b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 0 1504232547645 10 connected 89c447c76662b20cc8d635d8820d613bad6d3bd2 192.168.4.71:7009 slave 631bff889fbb5600febb896d075eeca5a2cd7322 0 1504232549150 11 connected 192.168.4.71:7010> 添加新的主节点的复制节点: redis-trib.rb add-node --slave 复制节点ip:port 主节点ip:port redis-trib.rb add-node --slave 192.168.4.71:7007 192.168.4.70:7001 [root@redis1 ~]# redis-trib.rb add-node --slave 192.168.4.71:7007 192.168.4.70:7001 >>> Adding node 192.168.4.71:7007 to cluster 192.168.4.70:7001 Connecting to node 192.168.4.70:7001: OK Connecting to node 192.168.4.70:7005: OK Connecting to node 192.168.4.70:7004: OK Connecting to node 192.168.4.70:7006: OK Connecting to node 192.168.4.70:7002: OK Connecting to node 192.168.4.70:7003: OK >>> Performing Cluster Check (using node 192.168.4.70:7001) M: fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 slots: (0 slots) master 0 additional replica(s) S: b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slots: (0 slots) slave replicates 0f5a3c497390a3f377da606571d3cb020fdc48ee M: 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 slots:0-5460 (5461 slots) master 0 additional replica(s) S: b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slots: (0 slots) slave replicates 42e3896fdba3409c87eeaedc8005486f5f66910d M: 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 slots:5461-10922 (5462 slots) master 1 additional replica(s) M: 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. Automatically selected master 192.168.4.70:7001 Connecting to node 192.168.4.71:7007: OK >>> Send CLUSTER MEET to node 192.168.4.71:7007 to make it join the cluster. Waiting for the cluster to join. >>> Configure node as replica of 192.168.4.70:7001. [OK] New node added correctly. [root@redis1 ~]# [root@redis1 ~]# redis-cli -h 192.168.4.70 -p 7001 cluster nodes b23bfc9ac1fdd4bfb9c799f7985622f54338cb0f 192.168.4.70:7005 slave 0f5a3c497390a3f377da606571d3cb020fdc48ee 0 1504168602095 2 connected 537c94bb9b1246facb7be1085f571cafc251d4a2 192.168.4.71:7007 slave fa6cf2a97766685e5b245c052dedb37b0e20bb43 0 1504168602095 0 connected 48c261163414d244d65fb9a70e09de166440da31 192.168.4.70:7004 master - 0 1504168604101 7 connected 0-5460 b4a9a578069a3b2a413fcb4125d17c8768b13359 192.168.4.70:7006 slave 42e3896fdba3409c87eeaedc8005486f5f66910d 0 1504168603097 3 connected 0f5a3c497390a3f377da606571d3cb020fdc48ee 192.168.4.70:7002 master - 0 1504168603599 2 connected 5461-10922 42e3896fdba3409c87eeaedc8005486f5f66910d 192.168.4.70:7003 master - 0 1504168603599 3 connected 10923-16383 fa6cf2a97766685e5b245c052dedb37b0e20bb43 192.168.4.70:7001 myself,master - 0 0 0 connected 从192.168.4.71:7007的主fa6cf2a97766685e5b245c052dedb37b0e20bb43就可以判断是192.168.4.70:7001的runid,这里可以确定192.168.4.70:7001添加复制节点成功 redis-cli -h 192.168.4.70 -p 7001 debug segfault
