Cluster集群

一个 Redis 集群中的节点数量至少需要 6 个才能保证组成完整高可用的集群。每个节点都需要开启 cluster-enabled yes,让 Redis 运行在集群模式下。建议为集群内所有节点统一目录,一般划分为三个目录:conf、data、log,分别存放配置、数据和日志相关文件。

  • 集群模式的 Redis 除了原有的配置文件之外,又增加了一份集群配置文件(由参数 cluster-config-file 设置)。

    • 当集群内节点信息发生变化,如添加节点、节点下线、故障转移等,节点会自动保存集群状态到集群配置文件中。

    • Redis 自动维护集群配置文件,不要手动修改,防止节点重启时产生集群信息错误。

  • 节点 ID:它是一个长度为 40 位的 16 进制字符串,用于唯一标识集群内一个节点。

    节点 ID 不同于运行 ID,节点 ID 在集群初始化时创建,节点重启时会加载集群配置文件进行重用,而 Redis 的运行 ID 每次重启都会变化。

创建目录

mkdir -p /media/redis/node1/conf
mkdir -p /media/redis/node1/data

vim /media/redis/node1/conf/redis.conf

注意:redis.conf中必须配置以下属性:

  • cluster-enabled yes

  • bind * -::*

  • protected-mode no

cp -r /media/redis/node1 /media/redis/node2 
cp -r /media/redis/node1 /media/redis/node3
cp -r /media/redis/node1 /media/redis/node4
cp -r /media/redis/node1 /media/redis/node5
cp -r /media/redis/node1 /media/redis/node6

启动集群服务

第一步:准备节点

此时,各个redis服务均处于独立状态,彼此并无联系

第二步:节点握手,并分配分区槽

第三步:检查集群状态

redis-cli cluster nodes
redis-cli cluster info
redis-cli --cluster check redis-node1:6379

访问redis集群

redis-cli命令中的 -c 的作用时,当收到重定向信息时,进行自动重定向

集群扩容

第一步:准备节点

第二步:新节点加入集群

第三步:槽迁移

第四步:检查集群状态

redis-cli --cluster check redis-node1:6379

第五步:增加slave节点

集群缩容

第一步:移除slave节点

第二步:槽迁移

为了满足负载均衡条件,在归还节点的slot时,应该将这些slot均匀地分配给各个主节点。

而因为reshard命令只能向一个目标节点迁移slot,因此需要多次执行reshard命令以完成slot的迁移。

redis-cli --cluster check redis-node1:6379

第三步:移除master节点

redis-cli cluster nodes

Last updated

Was this helpful?