Docker中部署Redis主从集群

介绍

请添加图片描述

请添加图片描述

删除Docker中的所有容器

#停止所有容器
docker stop $(docker ps -a -q)

#删除所有容器
docker rm $(docker ps -aq)

#删除所有镜像
docker rmi -f $(docker images -qa)

#删除旧Docker
sudo yum remove docker \
						   docker-client \
						   docker-client-latest \
						   docker-common \
						   docker-latest \
						   docker-latest-logrotate \
						   docker-logrotate \
						   docker-engine		   

重新安装Docker

#安装Docker
yum install docker -y

#启动Docker
service docker start

#停止Docker
service docker stop

#重启Docker
service docker restart

#配置Docker镜像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF

#查看Docker运行状态
systemctl status docker

安装Redis集群

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

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

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

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

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

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

配置总线端口和进程端口开放

参考

进入某个节点启动集群

docker exec -it redis-node-1 bash

# 这里的IP地址为你自己的
redis-cli --cluster create 81.68.232.188:6381 81.68.232.188:6382 \
81.68.232.188:6383 81.68.232.188:6384 \
81.68.232.188:6385 81.68.232.188:6386 \
--cluster-replicas 1

在这里插入图片描述

查看集群状态

redis-cli -p 6381 -c

在这里插入图片描述

测试

停掉一个主节点,看从节点是否也能获取到数据

# 进入主节点容器
docker exec -it redis-node-1 bash
# 进入Redis
redis-cli -p 6381 -c
# 查看集群状态
cluster nodes
# 设置值
set x 1
# 获取值
get x
# 退出Redis
exit
# 退出Redis容器
exit
# 停掉主节点容器
docker pause redis-node-1
# 查看容器运行状态
docker ps
# 进入从节点容器
docker exec -it redis-node-3 bash
# 进入Redis
redis-cli -p 6383 -c
# 查看集群状态:主节点已经停止
cluster nodes
# 获取key值
get x

先进入一个节点,查看集群状态

# 进入主节点容器
docker exec -it redis-node-1 bash
# 进入Redis
redis-cli -p 6381 -c
# 查看集群状态
cluster nodes

在这里插入图片描述

设置一个键值对

# 设置值
set x 1
# 获取值
get x

我们可以看到x分配到了6385节点上,而6385节点的从节点是6383

在这里插入图片描述

退出Redis容器,停止6385节点

# 退出Redis
exit
# 退出Redis容器
exit
# 停掉主节点容器
docker pause redis-node-1

docker ps

在这里插入图片描述

进入从节点6383,并查看集群状态

# 进入从节点容器
docker exec -it redis-node-3 bash
# 进入Redis
redis-cli -p 6383 -c
# 查看集群状态:主节点已经停止
cluster nodes

这是主节点6385已经停止了

在这里插入图片描述

获取x的值

get x

在这里插入图片描述

总结

在停止主节点的情况下,我们还是可以从从节点获取到数据,保证了Redis主从集群的高可用性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BirdMan98

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值