建哥手把手系列之30分鐘搞定動態添加刪除redis集羣節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

1.1. 添加集群節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

如果集群節點不夠,需要往集群中添加節點時,請跟著建哥按照下面的操作進行:

1) 網絡規劃,新加入兩個節點(Master:7007 slave:7008)。

2) 拷貝節點的配置信息(修改端口號)。

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

3) 啟動節點

redis-server /usr/local/redis_cluster/7007/redis.conf

redis-server /usr/local/redis_cluster/7008/redis.conf

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

4) 添加節點到集群

查看原集群的節點信息

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

/usr/local/bin/redis-trib.rb add-node 192.168.153.105:7007 192.168.153.105:7001

新節點:192.168.153.105:7007

任意老節點:192.168.153.105:7001

錯誤:

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

解決方法:

1:刪除配置文件/var/lib/redis/nodes-7007.conf,並且使用flushall刪除所有的key。

2:殺死7007對應的節點進程

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

3:重新啟動7007對應的節點

redis-server /usr/local/redis_cluster/7007/redis.conf

4:加入節點到集群

/usr/local/bin/redis-trib.rb add-node 192.168.153.105:7007 192.168.153.105:7001

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

5) 將主節點修改為備節點

1:使用備節點進入命令行

2:cluster replicate 主節點的nodeID

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

6) 給新加入的節點分配槽位

./redis-trib.rb reshard 192.168.153.105:7007How many slots do you want to move (from 1 to 16384)? 1000What is the receiving node ID? 2b7bb3be16460f2e0848c69cef3acc68f655a041 //新主節點idSource node #1:all //all表示從所有主節點中轉移2000個哈希槽Do you want to proceed with the proposed reshard plan (yes/no)? yes //確認分配

7) 測試效果

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

1.2. 刪除集群節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

如果需要更換節點硬件,那麼需要首先從集群中刪除節點,具體請跟著建哥做如下操作:

1) 刪除備節點

/usr/local/bin/redis-trib.rb del-node 192.168.153.105:7008 b72468282a26e16ba18df56197c21b52fc84b3df

節點ip:192.168.153.105

節點端口號:7008

節點nodeid:b72468282a26e16ba18df56197c21b52fc84b3df

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

2) 刪除主節點

按照上面的方法刪除主節點的時候,會報下面的錯誤:

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

需要將7007 上的所有999個槽位移動到7003(任一主節點)上。

./redis-trib.rb reshard 192.168.153.105:7007How many slots do you want to move (from 1 to 16384)? 999What is the receiving node ID? 2b7bb3be16460f2e0848c69cef3acc68f655a041 //7003Source node #1: e4a62c87832662366e970c93c313ae9499dcfbb7(7007的nodeId) Do you want to proceed with the proposed reshard plan (yes/no)? yes //確認分配

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

最後刪除沒有槽位的7007節點

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

3) 刪除節點集群配置文件

查找並刪除nodes-7007.conf,nodes-7008.conf

建哥手把手系列之30分鐘搞定動態添加刪除redis集群節點

別人笑我太瘋癲,

我笑他人看不穿。

不見五陵豪傑墓,

無花無酒鋤作田。


分享到:


相關文章: