redis docker 搭建哨兵模式

本文详细介绍了Redis哨兵机制的工作原理及其应用场景。哨兵(sentinel)是一种特殊的Redis服务,用于监控Redis实例节点并确保客户端始终连接到最新的主节点。文章还提供了搭建哨兵架构的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

哨兵是什么?

sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。

哨兵模式架构中,client端在首次访问Redis服务时,实际上访问的是哨兵(sentinel),sentinel会将自己监控Redis实例的master节点信息返回给client端,client后续就会直接访问Redis的master节点,并不是每次都从哨兵处获取master节点的信息。

sentinel会实时监控所有的Redis实例是否可用,当监控到Redis的master节点发生故障后,会从剩余的slave节点中选举出一个作为新的master节点提供服务,并将新master节点的地址通知给client端,其他的slave节点会通过slaveof命令重新挂载到新的master节点下。当原来的master节点恢复后,也会作为slave节点挂在新的master节点下

个人理解哨兵就是监控redis主从集群的一种架构,监控的同时保证客户端链接最新的主redis节点
在这里插入图片描述

哨兵架构搭建

首先大家redis主从集群,可以参考redis docker搭建主从复制,我是搭建了1主,2从节点

doker 启动哨兵 最少3台

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

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

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

复制相同的sentinel.conf配置文件,修改对应的端口即可参考如下

#不限制ip
bind 0.0.0.0
    
# 让sentinel服务后台运⾏
#daemonize yes
 
 # 禁止保护模式
#protected-mode no

# sentinel monitor <master-redis-name> <master-redis-ip> <master-redis-port> <quorum>
# 配置监听的主服务器,master-redis-name代表服务器的名称,master-redis-ip代表监控的主redis服务,master-redis-port代表端⼝
# quorum是一个数字,指明当有多少个sentinel认为一个master失效时(值一般为:sentinel总数/2 + 1),master才算真正失效
sentinel monitor mymaster 192.168.0.134 6381 2

#哨兵端口号 16379 16380 16381
port 16379

# sentinel auth-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
# sentinel auth-pass mymaster 123456
    
#超过5秒master还没有连接上,则认为master已经停⽌
#sentinel down-after-milliseconds mymaster 5000
    
#如果该时间内没完成failover操作,则认为本次failover失败
#sentinel failover-timeout mymaster 180000

#sentinel parallel-syncs mymaster 1

logfile "sentinel.log"

进入哨兵容器执行 redis-cli -p 16379 查看哨兵信息 info
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值