1.集群的數據遷移
在工作中經常會遇到redis集群的擴容的場景,因為當一個集群服務器中的內存不夠用無法支撐更大數據量的緩存或者並發量不夠(個人理解),就會將原有的集群擴展。集群擴容需要將集群中原有的master節點上的槽位以及數據遷移到新加入的master節點上。
每個槽都把要里面的數據遷移完才能進行下一個槽幾千個槽成千上萬個key手動挨個循環遍歷太麻煩了因此擴容都是用ruby腳本工具來進行的,本文中以三節點的集群擴容為四節點為案例。
首先要安裝好ruby的依賴環境可以到官網查看安裝教程www.rubygems.org,安裝后可以進入安裝目錄下運行./redis-trib.rb查看使用文檔
然后創建好新節點的數據目錄以及安裝目錄加入節點到集群中(192.168.108.54為新節點的通信ip)
./redis-trib-rb add-node 192.168.108.54:6380 192.168.108.51:6380 master
./redis-trib-rb add-node 192.168.108.54:6381 192.168.108.52:6380 slave
然后執行./redis-trib.rb reshard 192.168.108.51:6380 重新分配槽位
因為這個要保證集群負載平均,因此要將16384個槽平均分到四個master節點上,即每個master節點4096個槽,具體步驟如下:
這樣就完成了集群的擴容,可能大家對於集群的槽還會有一定疑問?下面我就為大家解釋一下