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陳 的文章