1. 如果刪除的節(jié)點(diǎn)是主節(jié)點(diǎn)胯杭,那么此節(jié)點(diǎn)中有哈希槽,需要把刪除的節(jié)點(diǎn)中的哈希槽轉(zhuǎn)移到其他節(jié)點(diǎn)中,執(zhí)行下面命令仔夺,還是轉(zhuǎn)移哈希槽的那個(gè)命令。
1)先刪除從節(jié)點(diǎn)
# ?cd/usr/local/redis-3.2.9/src/
#?./redis-trib.rb del-node?192.168.8.150:7000?90b99192b544286e67fdbf93d210ad98d51e14c3
注意:其中的del-node 后面加的192.168.8.150:7000 為集群標(biāo)示南捂,最后面為要?jiǎng)h除的節(jié)點(diǎn)的ID吴裤,此次刪除那個(gè)新加的7007的從節(jié)點(diǎn)。
執(zhí)行信息為:
[root@server src]# ?cd/usr/local/redis-3.2.9/src/
[root@server src]# ./redis-trib.rb del-node 192.168.8.150:700090b99192b544286e67fdbf93d210ad98d51e14c3
>>> Removing node90b99192b544286e67fdbf93d210ad98d51e14c3 from cluster 192.168.8.150:7000
>>> Sending CLUSTERFORGET messages to the cluster...
>>> SHUTDOWN the node.
此時(shí)再次查看狀態(tài):
發(fā)現(xiàn)7007節(jié)點(diǎn)已經(jīng)不存在了
2)刪除主節(jié)點(diǎn)
2.1)首先一定要重新分配哈希槽溺健,把要?jiǎng)h除的主節(jié)點(diǎn)中原有的哈希槽轉(zhuǎn)移到其他節(jié)點(diǎn)中麦牺。
使用分配哈希槽命令:
# cd usr/local/redis-3.2.9/src/
# ./redis-trib.rb reshard192.168.8.150:7000
和之前分配時(shí)操作一致,系統(tǒng)首先會(huì)提示要移動(dòng)多少哈希槽鞭缭,要?jiǎng)h除的節(jié)點(diǎn)有多少個(gè)就得移動(dòng)多少個(gè)剖膳,然后系統(tǒng)會(huì)提示輸入要接收這些哈希槽的節(jié)點(diǎn)的ID,這里實(shí)驗(yàn)使用7001的節(jié)點(diǎn)ID岭辣。
最重要的是:之后會(huì)讓我們選擇執(zhí)行all還是done吱晒。
此時(shí)一定要先輸入7006這個(gè)要?jiǎng)h除的節(jié)點(diǎn)的ID回車之后,再輸入done再回車沦童,有兩步仑濒。
具體操作如下:
輸入yes之后進(jìn)行轉(zhuǎn)移。
2.2) 再次使用查看集群信息命令偷遗,查看各節(jié)點(diǎn)當(dāng)前信息狀態(tài)躏精,看是否已經(jīng)轉(zhuǎn)移成功。
redis-cli -c -h 192.168.8.150 -p 7000 cluster nodes
查看狀態(tài)說明已經(jīng)沒有哈希槽了(紫色橢圓框標(biāo)注)鹦肿。
2.3) 此時(shí)再使用刪除節(jié)點(diǎn)命令矗烛。進(jìn)行刪除。
??? ./redis-trib.rb?del-node192.168.8.150:7000 82002358e7805a0151bcf63e6fb7255ad4b3d3a3
后面跟著7006的節(jié)點(diǎn)ID
查看狀態(tài)箩溃,驗(yàn)證是否刪除瞭吃。
redis-cli -c -h 192.168.8.150 -p?7000 cluster nodes
沒有7006節(jié)點(diǎn),說明已經(jīng)刪除涣旨。