> 文档中心 > Redis高可用集群搭建(二)

Redis高可用集群搭建(二)


1. redis集群扩容

1.1 创建新的redis节点

1.1.1查看现有的redis节点

当前节点为三主三从,共六个redis服务。

1.1.2 新增加两个节点

与之前创建节点操作类似

# 创建目录mkdir /opt/redisCluster/{7007,7008}/{data,conf,log}# 复制配置文件cp /opt/redisCluster/7001/conf/redis.conf /opt/redisCluster/7007/conf/redis.confcp /opt/redisCluster/7001/conf/redis.conf /opt/redisCluster/7008/conf/redis.conf# 修改配置文件sed -i 's/7001/7007/' /opt/redisCluster/7007/conf/redis.confsed -i 's/7001/7008/' /opt/redisCluster/7008/conf/redis.conf# 启动/opt/redisCluster/redis-6.2.6/src/redis-server /opt/redisCluster/7007/conf/redis.conf/opt/redisCluster/redis-6.2.6/src/redis-server /opt/redisCluster/7008/conf/redis.conf

查看新创建的redis服务

1.2 加入redis-cluster集群

1.2.1 集群加入主节点(默认为主节点)

查看帮助命令

redis-cli --cluster help

 

 含义:新的节点host:新的端口     已存在的任意集群中的一个host:对应的端口

        --cluster-slave  以集群从节点的身份加入

        --cluster-master-id  跟随的主节点id

添加7007为主节点

注意有密码的集群需要写上密码。

redis-cli --cluster add-node 192.168.116.129:7007 192.168.116.129:7001 -a redis@123

如下提示表示加入集群

1.2.2 集群加入从节点

注意--cluster-master-id 的值为要跟随的master的node-id

 redis-cli --cluster add-node 192.168.116.129:7008 192.168.116.129:7001 -a redis@123 --cluster-slave --cluster-master-id c08be1956f8307a79d4ebb5dcdf456b0449eb231

如下提示表示加入集群

1.2.3 分配槽位

 查看集群节点信息,发现新添加的主节点并没有分配槽位,此时是不能在该节点保存数据。

从集群中分配槽位

redis-cli --cluster reshard 192.168.116.129:7001 -a redis@123

 指定分配多少个槽位,给哪一个主节点分配,从哪个主节点划分出槽位。

例如分配1000个槽位给7007节点,从7001,7003节点上划分出来,done表示结束。

 输入yes开始划分

划分结束后查看集群信息,7007节点的槽位为:0-499 10923-11422,共1000的槽位。

如果原有节点的槽位上有数据,也会进行移动。

2. redis集群缩容

查看帮助

 redis-cli --cluster reshard 192.168.116.129:7001  --cluster-from 提供槽位的id  --cluster-to 接受槽位的id --cluster-slots 提供的槽位数量 

例如:将7007的1000个槽位都划分给7001节点,命令如下

输入yes 

正在移动

 删除7007,7008节点

 

redis-cli --cluster del-node 192.168.116.129:7007 c08be1956f8307a79d4ebb5dcdf456b0449eb231  -a redis@123redis-cli --cluster del-node 192.168.116.129:7008 9a6e7180d70d433c3b979ffd3b4e3ef033f9263d  -a redis@123

查看集群信息,已经移除7007,7008节点,并且7001节点上的槽位也发生了响应的改变。