建哥手把手系列之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集群节点

别人笑我太疯癫,

我笑他人看不穿。

不见五陵豪杰墓,

无花无酒锄作田。


分享到:


相關文章: