Redis-Cluster 動態增加主從節點
阿新 • • 發佈:2018-12-25
1:首先使用trib的check命令檢查下叢集當前的節點狀態
redis-trib.rb check xxx:6380
2:新增兩個節點配置檔案。(cp現有叢集節點配置檔案)
cd /usr/local/src/redis-3.2.4/redis_cluster/
cp -r 6380.conf 6386.conf
cp -r 6380.conf 6387.conf
2.1:修改兩個幾點配置檔案
- 注意修配置改檔案的port,log,pid,叢集配置檔名
2.2:啟動節點。
3:新增主節點
redis-trib.rb add-node xxx:6386 xxx:6380
xxx:6386是新增節點
xxx:6380是任意一個叢集老節點
使用trib的check命令檢查節點狀態,可以看出剛剛新增的是M主節
4:新增從節點
redis-trib.rb add-node --slave --master-id 2b7bb3be16460f2e0848c69cef3acc68f655a041 xxx:7007 xxx:7006
--slave,新增從節點.
--master-id,主節點id
使用trib的check命令檢查節點狀態,可以看出剛剛新增的是S從節點
給新的主節點重新分配slots,預設剛剛新增的主節點是沒有slots的,這樣在存取資料的時候不會被選擇
redis-trib.rb reshard xxx:6386
How many slots do you want to move (from 1 to 16384)? 2000(分配插槽數)
What is the receiving node ID? ea72ebfdb78a6ffa8c89e09dc1626795373589bf (新主節點id)
Source node #1:all //all表示從所有主節點中轉移2000個雜湊槽
Do you want to proceed with the proposed reshard plan (yes/no)? yes //確認分配
最後使用trib的check命令檢查節點狀態,可以看到之前slots為0現在已經分配了