最近在工作中需要對redis集羣擴容,在網上搜了些帖子都是3.X,4.X版本的,由於公司使用的是5.X版本,於是乎,久久無果.最後按照官網操作了一下還是挺簡單的
要擴容,先添加主節點,然後再分配hash槽,然後再添加從節點.
注:此處redis-server和redis-cli文件在redis根目錄/src下
一.添加主節點
1.從原有的集羣拷貝實例
2.啓動實例
./src/redis-server ./redis.conf
redis.conf 注意修改端口
3.添加節點
./src/redis-cli --cluster add-node 127.0.0.1:7000 xxx.xxx.xxx.xxx:7000
此時新添的節點:
①由於沒有分配的哈希槽,因此不保存任何數據。
②因爲它是沒有分配插槽的主機,所以當從機要成爲主機時,它不會參與選舉過程
4.分配hash槽
① 開始重新分片
redis-cli --cluster reshard 127.0.0.1:7000
鍵入上面的命令後會出現一下語句,意思是你準備重新分配多少個hash槽
How many slots do you want to move (from 1 to 16384)?
② 輸入1-16384 需要重新分配多少個哈希槽
③ 輸入哈希槽的目標節點id
④ 被移動的哈希槽的原節點 如果原來的所有節點是源節點 直接輸入all 也可以指定源節點,依次輸入源節點後輸入 done 結束
二.添加從節點
1.啓動實例(端口我設置的7001)
2.節點添加爲副本
./src/redis-cli --cluster add-node 127.0.0.1:7001 xxx.xxx.xxx.xxx:7000 --cluster-slave --cluster-master-id 48c711cf275d4e2e849c5b5e094ddafe694d8534
後面的uuid,是主節點在集羣的節點id,輸入上述重新分片的命令可以查看