使用Redis搭建三个哨兵的集群

一、根据基础镜像构建三个容器

根据本文第一章(到自动启动redis之前,不要设置自动启动,会出错)配置基础镜像的相关设置,构建好后,将其导出为镜像,并根据镜像构建三台哨兵机。

docker commit centos7 centos-redis:latest
docker run --name redis-sentinel-1 -d -p 26379:26379 --privileged centos-redis
docker run --name redis-sentinel-2 -d -p 26380:26379 --privileged centos-redis
docker run --name redis-sentinel-3 -d -p 26381:26379 --privileged centos-redis

对于三台容器都执行以下操作,将sentinel.conf文件移动到/myredis文件下,方便操作

docker exec -it redis-sentinel-1 /bin/bash
cp /usr/local/src/redis-7.0.15/redis.conf /myredis/
cp /usr/local/src/redis-7.0.15/sentinel.conf /myredis/

二、相关配置

根据一主二从配置的基础上在sentinel.conf文件中修改配置
机器redis-sentinel-1sentinel.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
logfile "/myredis/sentinel26379.log"
pidfile /var/run/redis-sentinel26379.pid
dir "/myredis"
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel auth-pass mymaster 123321

机器redis-sentinel-2sentinel.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26380
logfile "/myredis/sentinel26380.log"
pidfile /var/run/redis-sentinel26380.pid
dir "/myredis"
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel auth-pass mymaster 123321

机器redis-sentinel-3sentinel.conf

bind 0.0.0.0
daemonize yes
protected-mode no
port 26381
logfile "/myredis/sentinel26381.log"
pidfile /var/run/redis-sentinel26381.pid
dir "/myredis"
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel auth-pass mymaster 123321

由于后续一主二从中的主机可能会变成从机,所以在这里给他设置密码,将主机的redis6379.conf文件参数进行修改,修改后记得重启redis服务端使其生效。

masterauth 123321

三、启动哨兵

完成相关配置后,启动三个哨兵来完成监控,在三个docker容器内都执行如下命令

redis-sentinel sentinel.conf --sentinel

查看一下 sentinel26379.log中的内容
在这里插入图片描述
可以看到,在这个哨兵的日志文件中,显示了当前的主机有两个哨兵以及两个slave机

启动哨兵后,我们手动关闭6379服务器来模拟master挂了
172.17.0.2:6379这台主机上使用SHUTDOWN命令关机。
在这里主要考虑几个问题:

  • 从机的数据是否还完好
    我们选取一台从机,输入命令get k1来查询
    在这里插入图片描述
    这是由于哨兵选举新主机后会使得网络重新,此时在查询一次就可以了
    在这里插入图片描述
    可以发现,从机的数据依旧完好

  • 是否会从剩下的两台机器上选出新的master
    在这里插入图片描述
    可以发现,此时从机6380以及变成master了,且6381还是slave

  • 宕机的6379回来后,会不会产生双master冲突
    在这里插入图片描述
    从红框处可以看到,哨兵在选举出新的master后,会将原master作为slave挂到现在的master下。因此在6379重新连回来以后,他会作为6380的slave存在。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rockict_z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值