1. 程式人生 > >關於Redis的cluster叢集刪除節點後再次新增節點

關於Redis的cluster叢集刪除節點後再次新增節點

在cluster不小心刪除某個節點後再加入節點是個很麻煩的事(刪除之前先把cluster分配的hashslot給重新分配一下很重要

通過 redis-trib.rb del-node 你的節點地址 bd5a40a6ddccbd46a0f4a2208eb25d2453c2a8db(你的node ID(可以通過 redis-trib.rb check 檢視))刪除你的節點。

刪除完後要是想重新添加回去時發現用 redis-trib.rb add-node 你的節點地址 需要掛載的叢集的節點 新增時會報錯,

[ERR] Node 192.168.XX.XX:XXXX is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some

key in database 0.

出現這個的原因是這個節點之前已經加入過這個叢集了,再次加入就會爆出這樣的錯誤,你可以區配置節點的xxxx.conf檔案裡找到你儲存的cluster-config-fil節點資訊,找到然後刪除掉,然後刪除掉該節點的資料儲存RDB檔案(要是開啟的AOF)也需一併刪除掉

然後執行  redis-trib.rb add-node 命令,看是否可以加入叢集。成功的話就不用往下看了

要是還是不行就得去連線到你的Redis redis-cli -h 192.168.XXX.XXX -p xxxx (你節點的地址個埠號)去flushdb一下,清空資料庫,再次add-node應該就可以了。新增節點後記得給他分配hashslot

(記得)