目录
一、集群扩容
step1:创建节点并启动
step2:集群中添加节点
step3:新节点分配slot
step4:新主节点添加从节点
二、添加从节点
三、验证主从切换
step1:主节点6388下线
step2:查看节点信息
step3:启动6388节点
step4:查看节点信息
四、主节点删除
step1:重新分配slot
step2:删除主节点
step3:slot是否均匀
五、参考资料
本章节主要是cluster集群验证,如集群扩容、主从切换、删除节点等验证。
一、集群扩容
step1:创建节点并启动
参考Cluster集群搭建<一>中的节点创建并启动,这里添加:6388、6389两个节点,作为主从。
step2:集群中添加节点
./redis-cli --cluster add-node 172.17.0.7:6388 172.17.0.2:6382 -a abcdef
./redis-cli --cluster add-node 172.17.0.7:6389 172.17.0.2:6382 -a abcdef
注意:a. 第一个ip:port(如:172.17.0.7:6388):表示需要添加的节点
b. 第二个ip:port(如:172.17.0.2:6382):表示集群中任意节点
c. -a abcdef:添加节点需要的auth
都是主节点且slot为0,需要分配slot,见step3步骤
step3:新节点分配slot
分配slot有两种方式: all:所有主节点都给一点slot
done:指定主节点给slot
注意:新加的节点都是主节点,slot都是0,需要重新分配slot
a. 重新分配slot
./redis-cli --cluster reshard 172.17.0.2:6382 -a abcdef
注意:1). ip:port(如:172.17.0.2:6382):是当前集群中的任意节点
b. 输入分配多少节点
c. 输入给哪个节点分配slot
d. 选择分配方式
e. 是否继续分配:选择yes,完成分配
f. 查看slot分配详情
step4:新主节点添加从节点
step3中,6388分配slot,而6389还是主节点:这里把6389作为6388主节点的从节点
a. 删除已添加的6389节点
./redis-cli --cluster del-node 172.17.0.7:6389 2011a2f499f94fadfb831fec6da21a541c831611 -a abcdef
注意:1). 删除的ip:port节点,及节点的ID
6389没有slot可以直接删除,若是有slot需要同步到其他节点
b. 主节点添加从节点
./redis-cli --cluster add-node --cluster-slave --cluster-master-id d7352da65040b9736a7696f8074036323bd90583 172.17.0.7:6389 172.17.0.7:6388 -a abcdef
注意:1). d7352da65040b9736a7696f8074036323bd90583:主节点ID
2). 172.17.0.7:6389:添加的从节点
3). 172.17.0.7:6388:指定6388主机点添加从节点
二、添加从节点
参考第一节:集群扩容step4,这里新建节点6390,添加到主机点6388
./redis-cli --cluster add-node --cluster-slave --cluster-master-id d7352da65040b9736a7696f8074036323bd90583 172.17.0.7:6390 172.17.0.7:6388 -a abcdef
三、验证主从切换
step1:主节点6388下线
./redis-cli -h 127.0.0.1 -p 6388 -a abcdef shutdown
step2:查看节点信息
step3:启动6388节点
./redis-server ./conf/redis-6388.conf
step4:查看节点信息
四、主节点删除
主节点没有slot可以直接删除,若是有slot需要同步到其他节点。参考集群扩容step3。
step1:重新分配slot
注意:1). slot迁移到其他节点,分配方式done
2). 移除的主节点作为源
step2:删除主节点
./redis-cli --cluster del-node 172.17.0.7:6389 2011a2f499f94fadfb831fec6da21a541c831611 -a abcdef
step3:slot是否均匀
若删除后感觉其余主节点的slot不均衡,若是修改:重新slot,否则需要整个集群停掉,flushdb等重新创建集群。