Docker Redis哨兵模式部署

Docker Redis哨兵模式部署

我们先拉取redis配置 wget -c http://download.redis.io/redis-stable/redis.conf
当我们下载好配置文件之后,我们只需要注意一下几个配置即可。

  • port 是redis服务运行的端口(防止占用)
  • slaveof 指定redis的主机地址。
  • masterauth 当我们的主机redis有设置密码的时候,它就是设置主机连接密码。
# 设置redis端口
port 6379

# 主机地址 (从机添加就可以了 格式:ip 端口)
slaveof 121.40.122.104 6379

# 设置密码(选择性配置)
masterauth 123456

上方我们介绍了,重要的几个配置之后,就可以运行容器了

  • -v 将运行配置文件,指定为我们设置的/home/docker/redis/redisConfig/redis.conf ,容器内部路径/etc/redis/redis.conf。
  • -v /home/docker/redis/data为容器文件存储位置,与上方同理。
  • 我们已经将配置文件映射为我们的了,就只需要指定配置文件运行即可,redis-server /etc/redis/redis.conf
# 上方是对命令的部分解析,可以直接粘贴使用
docker run -p 6379:6379  --restart=always --name redis -v /home/docker/redis/redisConfig/redis.conf:/etc/redis/redis.conf -v /home/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf
# 我们部署完成之后,就需要查看redis主机配置是否成功
docker exec -it redis /bin/bash
# 进入redis客户端
redis-cli
# 查看配置节点
info Replication

好到这里我们redis的主从复制就已经完成了。
  • 但是如果现在主机死了怎么办呢?
  • 廖爷问的真好,我就大发慈悲的告诉你。
  • redis有一种模式叫做哨兵模式,它会定期的监控所有redis服务,给他们发送健康检查,如果长时间不回复,就判定死亡,就会将该redis节点移除,等后面活过来了,再把该redis节点拉入。
  • 还有一种情况,就是哨兵在监控过程中只是和某些节点网络波动,这样就会被假移除,那我不叼死你呀,所以我们可以哨兵模式集群。
  • 哨兵集群模式工作原理
    • 单个哨兵容易导致误判主节点下线,比如主节点正常,只是在与哨兵之间通讯出现短暂异常,如果是单个哨兵,在指定的时间间隔没有通讯就认为主节点下线了,但其实没有;如果哨兵集群,可以询问多个哨兵指定的主节点是否下线,这样就显得更有保障;
    • 假如主哨兵死亡,也会进行选举新的哨兵为领导者。

部署哨兵模式

创建哨兵模式

# 哨兵的端口号
# 因为各个哨兵节点会运行在单独的Docker容器中
# 所以无需担心端口重复使用
# 如果需要在单机
port 26379

# 配置哨兵的监控参数
# 格式:sentinel monitor <master-name> <ip> <redis-port> <quorum>
# master-name是为这个被监控的master起的名字
# ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,所以这里写master节点的容器名
# redis-port是被监控节点所监听的端口号
# quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
sentinel monitor local-master 121.40.122.104 6379 2

# master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
# 格式:sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds local-master 30000

docker 运行哨兵

docker run -p 26379:26379 --restart=always --name sentinel -v/home/docker/redis/sentinel-26379.conf:/etc/redis/sentinel.conf -v /home/docker/redis/sentinel/data:/data -d redis redis-sentinel /etc/redis/sentinel.conf

进入哨兵容器查看状态

# 进入哨兵容器
docker exec -it sentinel-26379 /bin/bash
# 连接客户端
redis-cli -p 26379
# 查看信息
info sentinel

当我停止了主节点

过30000秒就变了,这个时间自己设置的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值