redis集羣動態添加主節點和從節點

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/woshimike/article/details/56479773

如上圖所示:我現在有6臺機器的redis集羣,端口爲7002,7003,7004爲主,端口爲7001,7005,7006爲從節點


現在準備了兩個沒有在集羣中的redis服務:7007和7008;

ok 現在讓我們開始把7007和7008添加到集羣中

第一步:運行下./redis-trib.rb看命令是否正常,這個命令是用ruby寫的所以如果不正常請安裝ruby.	

安裝ruby步驟
		1:yum install ruby
2:yum install rubygems
3:gem install redis  (安裝redis和ruby 的接口)
第二步:
	執行命令 ./redis-trib.rb  add-node    new_host:new_port existing_host:existing_port
說明:new_host:需要加入集羣的redis服務ip地址 如本例中是:192.168.142.128
           new_port:需要加入集羣的redis服務ip端口  如本例中是:7007和7008
	existing_host:集羣中已存在的任何一個redis  ip地址 如本例中的192.168.142.128
	existing_port:集羣中已存在的任何一個redis  端口 如本例中的7001、7002、7003、7004、7005、7006

執行命令./redis-trib.rb add-node 192.168.142.128:7007 192.168.142.128:7001
如下:添加7007成功。

現在我們再來看下集羣節點信息如下


端口爲7007的redis已經成功的加入到集羣中,但是他這個主節點沒有空間槽。我們還需要進行第三步給這個節點
非配空間槽

第三步:給新加入節點分配空間槽
     1:執行命令./redis-trib.rb reshard 192.168.142.128:7007


執行命令如上圖所示:問你是否從原有的1-16384個槽中分配多少到新的主節點我們這裏分配4000爲例回車

	2:然後緊接着會詢問你給id爲誰的主節點分配,我們這裏copy這個id就行
	3:詢問你是從所有的空間去給這個節點分配空間還是從某一個節點分配
我這裏輸入all  回車繼續

	4:然後會給你分配出一個分配計劃,輸入yes開始分配。完成ok

我們再來看下7007已經分配了4000個空間槽 。

第四步:我們把端口爲7008的redis添加到集羣,把它作爲 7007的從節點
重複第二步命令:./redis-trib.rb  add-node    192.168.142.128:7008 192.168.142.128:7002

添加成功。


最後一步: 需要登錄新加入的7008redis,執行命令cluster replicate 主節點id(就是你想把這個從節點
放到那個主節點下面)
ok 完成如上圖所示集羣信息

測試:

如上圖所示 添加集羣完成。
而且測試發現:空間槽的分配是不分有沒有數據的,有數據的槽也有可能分配到新的主節點下
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章