Redis集群的创建,扩容,缩容

拉取镜像

```bash
docker pull redis:6.0.8
```

创建redis集群容器

执行docker命令

```bash
docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381

docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382

docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383

docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384

docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385

docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386
```

在这里插入图片描述

进入容器

```bash
docker exec -ti redis-node-1 /bin/bash
```

执行如下命令

redis-cli --cluster create 10.255.237.120:6381 10.255.237.120:6382 10.255.237.120:6383 10.255.237.120:6384 10.255.237.120:6385 10.255.237.120:6386 --cluster-replicas 1

在这里插入图片描述

输入yes之后

在这里插入图片描述

  1. 此时代表已经创建成功了

查看集群情况

在redis-node-1容器里面执行如下命令

	redis-cli -p 6381 -c 

通过如下命令查看redis集群情况

```bash
	 cluster info
	 cluster nodes
```

redis集群扩容案例【三主三从扩容到四主四从】

执行如下docker命令

```bash
docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387
docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388
```

进入6387实例内部

将新增的6387节点(空槽号)作为master节点加入原集群

```bash
redis-cli --cluster add-node 10.255.237.120:6387 10.255.237.120:6381
```

在这里插入图片描述

使用如下命令可以检查到6387节点已经加入了,但是可以看到没有分配槽位

redis-cli --cluster check 10.255.237.120:6381

在这里插入图片描述

重新分配槽号

redis-cli --cluster  reshard 10.255.237.120:6381

0-16383区间的数字选择
16383/master节点的个数,本次选择是4096
选择all

redis-cli --cluster check 10.255.237.120:6381

执行发现,新加入的主节点是由之前的主节点每个节点匀一点槽位给新的主节点,而不是全部重新分配

在这里插入图片描述

为主节点6387分配从节点6388

cluster-master-id为6387的编号

redis-cli --cluster add-node 10.255.237.120:6388  10.255.237.120:6387 --cluster-slave --cluster-master-id 135f091ecb2b7eade2d472c2589413fda8c6926b

在这里插入图片描述
在这里插入图片描述

至此,扩容完成

在这里插入图片描述

缩容【删除6387-6388】

缩容的时候,应该先删从机,再删除主机

执行redis-cli --cluster check 10.255.237.120:6381命令,获取6388节点id,如下图

在这里插入图片描述

删除节点的命令如下

redis-cli --cluster del-node 10.255.237.120:6388 50acca20c6240f83e81c1a5de2a0c17e3dbda523

给集群重新分配槽号

redis-cli --cluster reshard 10.255.237.120:6381

在这里插入图片描述

将6387的槽位号全部都分配给其他节点,在这里分配给6382了

如下图所示6387的槽位为0了

在这里插入图片描述

删除节点

6387的槽位已经分配出来了,现在可以删除6387节点了

redis-cli --cluster del-node 10.255.237.120:6387 135f091ecb2b7eade2d472c2589413fda8c6926b

检查集群情况

redis-cli --cluster check 10.255.237.120:6381

至此,redis集群的创建,扩容,缩容都操作完毕了

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值