1、集群搭建
架构:六个节点 3主3从
1.1、启动redis服务
每个节点上启动redis服务,注意需要将配置文件的cluster-enable yes 属性打开
1.2、创建集群
redis-cli --cluster create 192.100.3.36:6379 192.100.3.37:6379 192.100.3.38:6379 192.100.3.39:6379 192.100.3.40:6379 192.100.3.40:6379 --cluster-replicas 1
前面3个为主节点,后面3个为从节点,顺序指定分配
等待哈希槽分配完毕即可
2、扩容
添加一主两从
2.1、将主节点:192.100.3.42节点加入集群:
redis-cli --cluster add-node 192.100.3.42:6379 192.100.3.36:6379
2.2、查看集群状态:会多出新加入的节点
redis-cli cluster nodes
2.3、分配hash槽:
redis-cli --cluster reshard 192.100.3.36:6379
2.4、添加从节点:为新加入的节点添加从节点
redis-cli --cluster add-node 192.100.3.43:6379 192.100.3.38:6379
redis-cli --cluster add-node 192.100.3.44:6379 192.100.3.38:6379
43 和 44 为新的从节点,38为集群中的任意主节点
不过刚加入节点状态都为master
2.5、将从节点分配为主节点
连接上43节点,执行以下命令
redis-cli -h 192.100.3.43
cluster replicate 970cc71c4eb616be237ffd72489c31b338141f53(42节点的id,根据实际情况填写)
连接上44节点,执行以下命令
redis-cli -h 192.100.3.44
cluster replicate 970cc71c4eb616be237ffd72489c31b338141f53(42节点的id,根据实际情况填写)
3、缩容
3.1、需要先删除从节点
redis-cli cluster nodes
#从节点的ip和id redis-cli --cluster del-node 192.100.3.43:6379 29cd52d3212c2ea800392100e712ed2bc58c1214
3.2、在删除主节点(把主节点上的槽移到其他主节点)
#重新分配槽,指定集群中任意主节点,需要先把主节点上的槽移到其他主节点
redis-cli --cluster reshard 192.100.3.36:6379 #一次键入移除的槽数、接受槽数的主节点id、移除主节点的id、done、yes
redis-cli cluster nodes #查看主节点已经没有分配槽了
redis-cli --cluster del-node 192.100.3.42:6379 970cc71c4eb616be237ffd72489c31b338141f53
redis-cli cluster nodes #主节点已经移除了