链接

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 #主节点已经移除了