0

0

Redis系列——7.sentinel

星夢妙者

星夢妙者

发布时间:2025-06-27 08:16:02

|

971人浏览过

|

来源于php中文网

原创

今晚是除夕夜,我还在整理文档,真是位可爱又认真的小仙女呀。

之前我们学习了Redis的主从复制,效果非常好,能够分担主服务器的压力,提高Redis的整体吞吐量。(嗯,虽然“吞吐量”这个词可能不太恰当)

但是在这个过程中也存在一些问题,比如如果主节点突然挂了,该怎么办呢?

当然是需要人工干预啦。我们可以在其他从节点中手动选择一个新的主节点,然后让其他节点成为这个新主节点的从节点。

具体步骤如下:

1.启动从节点为主节点。命令为slaveof no one

2.旧主节点的其他从节点变成新主节点的从节点。命令为slaveof new master

3.通知应用方Redis主节点已经变更,修改客户端调用的地址并重启客户端。

4.当已经挂掉的主节点重新上线后,旧主节点变成新主节点的从节点。命令为slaveof new master

请原谅我手机的画质,因为穷,没有其他原因啦。

Redis系列——7.sentinel但这都是人工操作的,大家都知道,程序员都很懒,能自动监控的,绝不自己动手。

所以接下来我们要学习Redis的哨兵,也就是自动切换,无需自己动手。

在Windows上搭建哨兵

上次主从复制因为懒,没有写具体过程,这次得一次还清。所以哦,不要拖延,及时完成任务,不然拖到最后还是得自己干。

今天我们先下载Windows版本的Redis,再搭建主从复制(一主二从),最后搭建监控Redis的哨兵(三个,这里为什么要3个,后面会解释的,所以啊,我们不急,慢慢来,因为这是一块大骨头)。

1.下载Windows版本的Redis

因为Redis官方并不支持Windows,所以我们去GitHub下载,https://www.php.cn/link/ecd610837c2670b1acbe1d57821055b8

2.搭建主从复制(一主二从)

redis.windows.conf重命名为redis6379.conf,然后复制两个分别为redis6380.confredis6381.conf

redis6380的配置文件为:

port 6380
bind 127.0.0.1
slaveof 127.0.0.1 6379

redis6381的配置文件为:

port 6381
bind 127.0.0.1
slaveof 127.0.0.1 6379

这些配置文件的意思非常明确,如果不明白,可能得挨打了。

port为当前Redis的端口号。

bind为绑定的服务器。

slaveof为该从服务器跟随哪个主服务器及其端口号。

配置文件准备好后,就可以启动它们了。

如下启动其他两个从服务器,具体操作就交给你们啦。

Redis系列——7.sentinel三个都启动完毕后,我们来看一下主节点的状态,很明显,6379为主节点,下面有两个从节点,分别是6380和6381。

Redis系列——7.sentinel3.搭建哨兵(3个)

主从复制搭建好后,我们来搭建哨兵。

新建三个哨兵配置文件:

Redis系列——7.sentinelRedis系列——7.sentinelRedis系列——7.sentinel这些配置文件的含义是什么呢?

port为当前哨兵服务运行的端口。

sentinel monitor mymaster 127.0.0.1 6379 2为哨兵监视一个名为mymaster的主Redis实例,这个主实例的IP地址为127.0.0.1,端口号为6379。

sentinel down-after-milliseconds mymaster 5000为自动失效时间。

sentinel parallel-syncs mymaster 1为指定执行故障转移时,最多可以有几个从Redis实例在同步新的主实例。

sentinel failover-timeout mymaster 15000为如果在该时间内未完成节点切换,则认为失败。

动感商城购物系统
动感商城购物系统

最近升级更新:(1)产品分类改为二级无限分类,可以更科学方便的管理产品信息(2)产品类别可在线添加、修改、合并、移动、删除(3)产品可在缺货时隐藏,并增加产品投票功能(4)将系统更改为会员制购物,会员分为客人、用户、VIP会员三级。(5)管理员可设置会员自动升级条件和相应级别所享有的折扣。也可手动升级会员级别。(6)增加了邮件列表功能。可在线订阅、群发。(7)管理员更改为总管理员、查看人员、添加人

下载

接下来我们来分别启动三个哨兵:(照猫画虎)

Redis系列——7.sentinel4.测试哨兵

Redis系列——7.sentinel如果此时我再启动6239服务器,它是重新成为主节点,还是成为新节点6381的从节点?结论是它成为了从节点。

Redis系列——7.sentinel哨兵进行故障转移的过程

哨兵Sentinel初始化的过程

步骤如下:

1.初始化服务器(哨兵也是一个正常的Redis服务器)

2.将普通的Redis使用的代码替换为哨兵Sentinel专用代码

不需要RDB/AOF文件(因为不需要加载数据,它是监控节点,而不是数据节点)

端口号不一样(哨兵的端口号为26379,而默认的Redis端口为6379)

普通Redis命令:set/get/dbsize

哨兵命令:ping/sentinel

3.初始化哨兵状态sentinel

4.向Redis服务器创建连接

一个命令连接:向主服务器发送命令,并接受回复

一个订阅连接:_sentinel_:hello频道

在发送与订阅功能中,被发送的消息不会保存在服务器中。当客户端不在线/断线中,为了不丢失这条消息,Redis就用了一个订阅频道来接受这条消息。

为什么哨兵是3个?

哨兵集群必须部署两个以上节点,如果哨兵集群仅仅部署了两个哨兵实例,那么他的大多数为2(2的大多数为2,3的大多数为2,5的大多数为3,4的大多数为2),如果其中一个哨兵宕机,就无法满足大多数大于等于2,那么在master发生故障的时候就无法进行主从切换。

哨兵如何监控?

Redis系列——7.sentinel检测实例是否下线:

主观下线:哨兵与服务器断开时间超过指定时间

客观下线:客观下线数量超过半数

整个故障转移流程

1.哨兵领导节点的选举

相互发送信息:要求对方设置自己为局部零头哨兵

Raft算法 先到先得 Leader只是故障转移中出现的角色

可参考:https://www.php.cn/link/f230954603f7a3eea4a0884c786f1ae2

2.新的主服务器怎么选?

由领导节点将所有的从服务器保存在列表中,然后一项项过滤

A.去除所有处于下线的

B.去除近5s内没有回复的

C.优先级+复制偏移量最大(要求数据为最新的)

D.排序,选择运行ID最小的。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

1100

2026.01.21

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

811

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1129

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

804

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2355

2023.08.08

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

824

2023.08.10

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

1667

2023.08.28

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

54

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

Redis+MySQL数据库面试教程
Redis+MySQL数据库面试教程

共72课时 | 6.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号