Linux安装redis-哨兵模式部署

萨瓦迪卡1年前 (2025-09-02)redis8963


哨兵部署:在master节点出现故障后,哨兵进程会自动将master下线,自动将子节点提升为主节点。完成故障转移,实现高可用性。

91226c7b-0f7a-4f6e-9165-038db56113b9.png

这个架构图里面,我们部署了3个哨兵节点组成了一个哨兵集群。它们在启动的时候会进行哨兵选举,选举出一个领导者,在出现故障转移的时候,由领导者进行主导,而触发故障转移需要大部分的哨兵节点都认为主节点发生了故障。这个状态我们称为客观下线。与之对应的是主观下线:也就是单个哨兵发现主节点出现故障,会去询问其他的节点,确认当前主节点是否已经出现故障,当其他哨兵确认主节点出现了故障,并且数量超过了大多数。这时就会从主观下线转为客观下线,一旦确认客观下线就会触发故障转移。由领导者主导,将主节点进行下线操作。然后在从节点里选一个晋升为主机点。然后告知客户端,新的主节点在什么位置,实现无缝切换。旧的主节点恢复后会重新加入到整个集群中,只是角色变成了从节点。

3.1. 哨兵模式部署

整体架构:这个结构是基于主从部署的基础上,新增你了3个哨兵节点,每个哨兵节点都是监控 同一个主节点129的状态.


d4a5aad5-25da-4365-8569-46e50d144e53.png


3 个机器都需要修改 sentinel.conf 配置(vim sentinel.conf),配置完成之后先从主节点开始启动哨兵。
protected-mode no #6⾏,关闭保护模式
daemonize yes  #15⾏,指定sentinel为后台启动
logfile /opt/software/redis/redis-stable/sentinel.log #34⾏,指定⽇志存放路径
dir /opt/software/redis #73⾏,指定数据库存放路径
sentinel monitor mymaster 192.168.75.129 6379 2#93⾏,修改 指定该哨兵节点监控20.0.0.20:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:⾄少需要2个哨兵节点同意,才能判定主节点故障并进⾏故障转移
sentinel down-after-milliseconds mymaster 30000 #134⾏,判定服务器down掉的时间周期,默认30000毫秒(30秒)
sentinel failover-timeout mymaster 180000 #234⾏,故障节点的最⼤超时时间为180000(180秒)

将三个服务都启动redis-server redis.conf后,可以用redis-cli info replication查看下当前主从架构的状态。

b5e1a4ca-2598-46dd-b181-cd856acec4dd.png

    • 操作

    • 然后启动哨兵(主节点操作):redis-sentinel sentinel.conf

    • 查看哨兵(主节点操作):   redis-cli -p 26379 info sentinel

测试:将129主节点下线:redis-cli shutdown,然后查看当前的sentinel.log日志: cat sentinel.log。
节点查看状态:redis-cli info replication。发现131的节点已变成了主节点。

0be9eff4-7ba9-49e7-8c4c-83130f738b0a.png


也可以到129上,日志文件查看下变化。cat redis.conf     cat sentinel.conf


本文原创,转载必追究版权。

分享给朋友:

相关文章

高情商女孩,女生看了都喜欢

高情商女孩,女生看了都喜欢

 王晨阳:19岁大四,北京航空航天大学,插画专业,夜市卖过化妆品,开过儿童美术教学班,某网站签约网络小说作家,15岁开始,3年时间写了8部小数约24万字;对话1:沈东军 vs王晨阳沈东军:像...

js限制input只能输入数字、英文、汉字

 1.只能输入数字和英文的:  <input onkeyup="value=value.replace(/[\W]/g,'') "...

SSH重启linux服务器

[root@centos6 ~]# sh stop.shsh: stop.sh: No such file or directory[root@centos6 ~]# ps -ef|grep java...

js/jquery 日历控件及实例下载

js/jquery 日历控件及实例下载

实现日历控件效果:页面:<link href="${base}/resource/${profile.path}/css/lhgcalendar.css" rel="...

jquery 操作html元素(及CSS)

jquery 操作html元素(及CSS)

 $("li").addClass("aui-user-view-cell aui-img") ;  //给元素添加样式$('#a1...

竟然可以这样打扮!女人呆了!男人痴了!

来个轻松点的哇,惊呆了,肯定贵不了,立刻去瞅瞅...

评论列表

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。