Redis集群动态增加和删除节点

一、添加节点

    1、首先将需要添加的节点启动

         这里启动redis6383.conf和redis6393.conf两个节点

         查看原有节点:          

        3个主节点所对应的哈希槽(hash slot)

        myself表示当前连接的节点

      2、执行以下命令,将新节点添加到集群中

      ../redis-trib.rb add-node 192.168.230.129:6383 192.168.230.129:6380       

     备注:192.168.42.111:6383 是新的主节点

             192.168.42.111:6380 是原存在的任一主节点

      

     查看刚才新增的节点   

     3、增加一个从节点,执行以下命令   

     ../redis-trib.rb add-node --slave --master-id 863203beac4e9e1fd85b218fc388f8b8ac9d2218 192.168.230.129:6393 192.168.230.129:6380 

       注释:

              --slave 表示添加的是从节点

              --master-id 863203beac4e9e1fd85b218fc388f8b8ac9d2218 主节点的node id,在这里是前面新添加的6383的node id

              192.168.10.220:6393 新节点

              192.168.10.219:6380 集群任一个旧节点  

查看节点情况,可看见从节点已添加

但是,其主节点也就是6383的哈希槽为空,需要重新分配槽,执行命令:

 ../redis-trib.rb reshard 192.168.230.129:6380 

 注释: 192.168.230.129:6380 集群任一个旧节点

然后再输入yes,redis集群就开始分配哈希槽了.....

至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态

可看到已分配

二、删除节点

     1、删除从节点

         删除从节点,直接使用以下命令即可

         ../redis-trib.rb del-node 192.168.230.129:6393 05945dcae79aca1425f68ca95f2aaf4d44b2167a

        注释:192.168.230.129:6393  节点地址

                   05945dcae79aca1425f68ca95f2aaf4d44b2167a   节点node_id

       

     2、删除主节点

          因为主节点含有槽数,所以,首先要把节点中的哈希槽转移到其他节点中,执行命令

          ../redis-trib.rb reshard 192.168.230.129:6380 

         注:192.168.230.129:6380  集群中任一主节点     

然后再输入yes,等待转移完成......

查看节点情况

最后,使用以下命令,将节点删除

 ../redis-trib.rb del-node 192.168.230.129:6383 863203beac4e9e1fd85b218fc388f8b8ac9d2218 

三、为主节点添加从节点

       1.首先将新节点添加到集群中,使用命令

        ../redis-trib.rb add-node 192.168.230.129:6383 192.168.230.129:6380 

       2.执行以下命令,将添加至某个主节点

        ../redis-cli -c -h 192.168.230.129 -p 6383 cluster replicate 52f6a45a1e968ab150a50127f29e9f0b3efbae9c 

        注:后面的node_id为要添加主节点的ID

      3.使用下面命令来确认一下192.168.230.129:6383是否已经成为192.168.230.129:6380的从节点

        ../redis-cli -c -h 192.168.230.129 -p 6380 cluster nodes | grep slave | grep 52f6a45a1e968ab150a50127f29e9f0b3efbae9c 

可看到6380的两个从节点:

查看节点之间的关系

原文地址:https://www.cnblogs.com/maybesuch/p/10309403.html