docker搭建redis集群

本文档详细介绍了如何在Linux环境下利用Docker拉取Redis镜像,创建data目录,启动6个Redis容器形成集群,并配置为3主3从模式。接着展示了通过docker命令检查容器状态和获取容器IP,以及如何创建集群。最后,通过模拟主机宕机,演示了Redis集群的自动故障转移,当主机宕机后,其从机能够自动接管成为新的主机,确保服务的高可用性。
摘要由CSDN通过智能技术生成

注意:本教程默认环境是在Linux下,并且docker已安装

1. 拉取redis镜像

docker pull redis:5.0,拉取镜像是否成功,查看命令如下:docker images

在这里插入图片描述

2. 创建data目录

在linux根目录下创建data目录,并在data目录下创建node1、node2、node3、node4、node5、node6文件夹,命令:mkdir node1 node2 node3 node4 node5 node6

在这里插入图片描述

3. 启动redis容器

依次执行下面6条命令,启动6台redis容器
docker run -d --name node1 -v /data/node1:/data -p 6391:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-1.conf

docker run -d --name node2 -v /data/node2:/data -p 6392:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-2.conf

docker run -d --name node3 -v /data/node3:/data -p 6393:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-3.conf

docker run -d --name node4 -v /data/node4:/data -p 6394:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-4.conf

docker run -d --name node5 -v /data/node5:/data -p 6395:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-5.conf

docker run -d --name node6 -v /data/node6:/data -p 6396:6379 redis:5.0 --cluster-enabled yes --cluster-config-file node-6.conf

在这里插入图片描述

4. 查看容器运行状态

执行docker ps查看容器运行状态,如下图所示即为启动成功进入运行状态

在这里插入图片描述

5.查看redis容器ip地址

执行docker inspect node1查看node1的ip的地址为172.17.0.6
执行docker inspect node2查看node2的ip的地址为172.17.0.8
执行docker inspect node3查看node3的ip的地址为172.17.0.9
执行docker inspect node4查看node4的ip的地址为172.17.0.10
执行docker inspect node5查看node5的ip的地址为172.17.0.11
执行docker inspect node6查看node6的ip的地址为172.17.0.12

在这里插入图片描述

6.创建集群

进入某一台容器,执行docker exec  -it  node1  /bin/bash 进入容器node1

在这里插入图片描述
执行命令创建3主3从集群 redis-cli --cluster create 172.17.0.6:6379 172.17.0.8:6379 172.17.0.9:6379 172.17.0.10:6379 172.17.0.11:6379 172.17.0.12:6379 --cluster-replicas 1 ,命令的最后这个数字表示的意思是:每台主机跟随的从机数是多少,如过每台主机的从机数是n,所以最后启动的容器数就等于主机数*(1+n),对于本次而言就是3*(1+1)=6个容器
在这里插入图片描述输入yes回车,如图所示说明集群创建成功在这里插入图片描述

7. 模拟其中一台主机宕机

(1) 执行命令docker exec -it node1 /bin/bash ,进入容器node1,执行redis-cli进入redis客户端,再执行cluster nodes查看redis集群各节点信息,现在能看到node1(172.17.0.6)、node2(172.17.0.8)、node3(172.17.0.9)为主机,剩下三个是从机
在这里插入图片描述
(2) 现在执行命令docker stop node1,停止node1容器运行(模拟宕机),node1现在已经进不去了,执行命令docker exec -it node2 /bin/bash进入node2容器,然后执行redis-cli进入redis客户端,再执行cluster nodes查看各节点容器信息,明显能看到node1(172.17.0.6)已宕机,而它的从机node5(172.17.0.11)已经摇身一变成为主机
在这里插入图片描述
(3) 现在执行命令docker start node1重新启动容器node1,然后执行命令docker exec -it node1 /bin/bash进入容器node1,然后执行redis-cli进入redis客户端,最后执行cluster nodes查看集群各节点信息,已然发现node1成为从机,而他的主机是node5(172.17.0.11),也就是它原来的从机。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

下雨天的太阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值