redis集群-主从

申明:本文为学习过程中的笔记,在现有的资料基础之上做了学习和整理,非完全原创的。

Redis集群-主从

1 搭建3主3从
(1) 安装6台redis

注:实际生产中需要挂载数据卷

//--net host 使用宿主机ip和端口
//--privileged=true 获得宿主机root用户权限
//--cluster-enabled 开启redis集群
//--appendonly yes开启持久化
docker run -d --name redis-node-1 --net host --privileged=true redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381

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

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

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

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

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

如图所示:
在这里插入图片描述

(2)进入任意一个节点容器内部构建集群关系(以6381为切入点)

命令如下:

(1)docker exec -it redis-node-1 bash

(2)redis-cli --cluster create 192.168.xxx.115:6381 192.168.xxx.115:6382 192.168.xxx.115:6383 192.168.xxx.115:6384 192.168.xxx.115:6385 192.168.xxx.115:6386 --cluster-replicas 1

如图所示:
在这里插入图片描述

(3)查看集群的状态(以6381为切入点查看集群状态)

1 cluster info
在这里插入图片描述

2 cluster nodes
在这里插入图片描述

命令如下:
先执行如下命令,在执行cluster nodes和cluster info

(1)docker exec -it redis-node-1 bash
(2)redis-cli -p 6381

3 数据读写存储

由于是集群所以在进入redis时,需要加-c参数优化路由,否则key放入不到对应的哈希槽中

redis-cli -p 6381 -c

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

查看集群信息

redis-cli --cluster check 192.168.xxx.115:6381

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

2 容错切换迁移

停止6381主节点,会发现6381的从节点此时上位

命令如下:

docker stop redis-node-1
3 集群扩容
(1) 新建2个节点
docker run -d --name redis-node-7 --net host --privileged=true redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387

docker run -d --name redis-node-8 --net host --privileged=true redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

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

(2) 节点入集群

将6387作为master加入集群

命令如下:

//6387 就是将要作为master新增节点
//6381 就是原来集群节点里面的领路人,相当于6387通过6381找到集群并加入
(1)docker exec -it redis-node-7 bash

(2)redis-cli --cluster add-node 192.168.xxx.115:6387 192.168.xxx.115:6381

在这里插入图片描述

检查集群情况如下:
如图:
在这里插入图片描述

(3) 重新分配槽号
如图:
(1)
在这里插入图片描述

(2)
在这里插入图片描述

再次检查集群

redis-cli --cluster check 192.168.xxx.115:6381

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

(4) 为主节点6387分配从节点6388

redis-cli --cluster add-node 192.168.xxx.115:6388 192.168.xxx.115:6387 --cluster-slave --cluster-master-id 73c0efebc89e6b2b6d4b9bdf66335facf05a0cd4-------这个是6387的编号,按照实际情况

再次检查集群
如图:
在这里插入图片描述

4 集群缩容

实现要求:6387节点和6388节点下线,哈希槽全部分配给6381

(1) 将6388从节点从集群中删除
redis-cli --cluster del-node 192.168.xxx.115:6388 19b86141674922b0c31dcbb5cd14709e2dccdadd

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

(2)将6387槽位清空全部分给6381
redis-cli --cluster reshard 192.168.xxx.115:6381

如图:
(1)
在这里插入图片描述

(2)
在这里插入图片描述

检查集群情况

redis-cli --cluster check 192.168.xxx.115:6381

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

(3) 将6387删除
redis-cli --cluster del-node 192.168.xxx.115:6387 73c0efebc89e6b2b6d4b9bdf66335facf05a0cd4

检查集群情况

redis-cli --cluster check 192.168.xxx.115:6381

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值