在集羣中添加新結點
我們先打開之前創建的6個結點 7001-7006。
添加新的節點的基本過程就是添加一個空的節點然後移動一些數據給它,有兩種情況,添加一個主節點和添加一個從節點(添加從節點時需要將這個新的節點設置爲集羣中某個節點的複製)
在集羣目錄中新建兩個目錄:
mkdir 7007 7008
cp 7001/redis.conf 7007/ 複製配置文件,更改其中的參數爲7007
cp 7001/redis.conf 7008/ 更改其中的參數爲7008
此時8個結點都打開,現在我們把他們加入到結點中去。
redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001 添加主節點
新的結點 存在的結點
可見7007結點已經添加進去,並且它沒有slave結點。並且沒有哈希槽。
所以我們還需要給他添加一個slave結點,才能分配哈希槽。
redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7007 --cluster-slave --cluster-master-id f43ad5c680f1c87baea88ed6a15991d86aa67ca1
此時7007和708都加進去了但是仍然沒有哈希槽,所以我們現在分配哈希槽給7007
redis-cli --cluster reshard 127.0.0.1:7007
先分配300個給7007的id,然後從所有結點中取300個,all代表從所有的裏面取。
這裏我們看到分配的哈希槽是非常不均勻,我們給4個結點均勻分配一下哈希槽:
redis-cli --cluster rebalance --cluster-use-empty-masters --cluster-threshold 1 127.0.0.1:7001
cluster-use-empty-masters 使用空master
threshold 起點
這樣就均分了。每個4096個槽了。
數據就存到7007上了,因爲槽在7007上。