1.1. 添加集群節點
如果集群節點不夠,需要往集群中添加節點時,請跟著建哥按照下面的操作進行:
1) 網絡規劃,新加入兩個節點(Master:7007 slave:7008)。
2) 拷貝節點的配置信息(修改端口號)。
3) 啟動節點
redis-server /usr/local/redis_cluster/7007/redis.conf
redis-server /usr/local/redis_cluster/7008/redis.conf
4) 添加節點到集群
查看原集群的節點信息
/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
錯誤:
解決方法:
1:刪除配置文件/var/lib/redis/nodes-7007.conf,並且使用flushall刪除所有的key。
2:殺死7007對應的節點進程
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
5) 將主節點修改為備節點
1:使用備節點進入命令行
2:cluster replicate 主節點的nodeID
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) 測試效果
1.2. 刪除集群節點
如果需要更換節點硬件,那麼需要首先從集群中刪除節點,具體請跟著建哥做如下操作:
1) 刪除備節點
/usr/local/bin/redis-trib.rb del-node 192.168.153.105:7008 b72468282a26e16ba18df56197c21b52fc84b3df
節點ip:192.168.153.105
節點端口號:7008
節點nodeid:b72468282a26e16ba18df56197c21b52fc84b3df
2) 刪除主節點
按照上面的方法刪除主節點的時候,會報下面的錯誤:
需要將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 //確認分配
最後刪除沒有槽位的7007節點
3) 刪除節點集群配置文件
查找並刪除nodes-7007.conf,nodes-7008.conf
別人笑我太瘋癲,
我笑他人看不穿。
不見五陵豪傑墓,
無花無酒鋤作田。
閱讀更多 HelloTeacher陳 的文章