一、添加节点
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的两个从节点:
查看节点之间的关系