Java开发 - 让你少走弯路的Redis主从实现单节点哨兵模式

news2025/1/13 13:26:26

前言

前一篇中,我们讲解了Redis主从的搭建方式,其实很简单呐有木有,都是配置,连句代码都没有,是不是感觉高估了Redis主从的搭建方式?哈哈,没关系,跟着博主,包你全会。今天我们的主题是哨兵,没错,就是哨兵!有了Redis,要是没有哨兵,那真是太可惜了,哨兵是很神圣的一种重要的监测工具,有了哨兵,在Redis主节点出现问题的时候,哨兵就会预警,并选举出新的master,这样,Redis的工作就不会停掉,对于服务器来说非常重要。

简单哨兵模式

基础知识推荐

关于哨兵的一些概念,博主看到了不少优秀的作品,为了防止长篇大论的写重复的内容,就在这里分享给大家。

Redis中的哨兵模式 - 简书

怎么实现Redis的高可用?(主从、哨兵、集群) - 知乎

手把手教你配置Redis主从复制(含详细图文)

这几篇博客都是非常优秀的博客,读完之后,相信一定会让大家受益匪浅,下面就是实战阶段,大家跟着一起动手吧。

Redis主从加码

我们上一篇是Redis主从,一主一从,相信大家都还记得吧,现在,要求大家再给master节点增加一个slave,应该很简单吧。可以自己试试,也可以跟着博主一起来操作。

我们上一篇的文件夹是这样的:

下面动动我们的小手,来增加一个新的slave,配置如下:

port:6382
daemonize yes
pidfile /var/run/redis_6382.pid
logfile "6382.log"
slaveof localhost 6380

是不是很简单,几乎和另一个slave一样,测试嘛,就免了,基本也没改啥,不用测都知道一定可以,小伙伴可以自行测试下配置是否正确。

配置哨兵配置文件

首先,我们会在src文件中看到一个redis- sentinel文件,这就是哨兵的启动文件了:

接着,要配置的文件名字叫sentinel.conf,我们可以在redis目录下找到这个文件:

由于博主安装Redis的时候安装到了src,所以大家才会看到博主在src操作这些文件,正常来说,你安装在redis目录下也是可以的,下一步,我们还是把sentinel.conf复制到src目录下:

接着来修改此文件中的配置,需要修改的配置如下:

#配置端口
port 26379
# 设置为守护进程模式,可先注释,看投票选主的过程
#daemonize yes
#日志文件名
logfile "redis_sentinel.log"
#存放备份文件以及日志等文件的目录
dir "/opt/redis/data"
# redis_sentinel表示hostname,自己随意取名
# 数字1表示当主机宕机后,在从机中进行投票选主,票数大于1的晋升为主机
sentinel monitor redis_sentinel 127.0.0.1 6380 1
#30秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 30000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs mymaster 1
#故障转移三分钟内没有完成,认为转移失败
sentinel failover-timeout mymaster 180000

 有些参数是默认就有的,其实需要改的就俩:

# 设置为守护进程模式,可先注释,看投票选主的过程
#daemonize yes
# redis_sentinel表示hostname,自己随意取名
# 数字1表示当主机宕机后,在从机中进行投票选主,票数大于1的晋升为主机(因为我们现在有两个从节点)
sentinel monitor redis_sentinel 127.0.0.1 6380 1

虽然默认守护进程都没有,也就只能算一个了,像上面那些文件在启动的时候会自动生成的,我们目前是教学阶段,可以不用管。

启动Redis

进入启动文件目录:

cd Desktop/JAVATOOL/redis/src 

大家写自己的路径。

启动主Redis:

redis-server redis_master.conf

启动两个从Redis节点:

redis-server redis_slave0.conf
redis-server redis_slave1.conf

查看redis启动状态:

ps -ef | grep redis

可以看到三个Redis服务都已经启动起来了,测试博主就不贴出来了,大家自行测试就好。

启动哨兵

 启动哨兵:

redis-sentinel sentinel.conf

此时博主电脑弹了一个允许使用网络的窗口,手滑直接点了,没截图,算了。 

看运行的情况:

哨兵已经成功启动了,可以看到主从的关系了,一主,二从,说明我们配置的暂时没问题,要确认哨兵能不能正常工作,还要看master宕机后能不能自动选主。

测试哨兵是否配置成功

为了看哨兵是否能正常工作,选出新的mater,我们需要手动干掉redis的master节点,通过

ps -ef | grep redis

新开一个终端,查看几个节点~这应该是进程号:

通过kill命令杀死主节点:

kill -9 74840

这里有一整个投票选主的过程,目前的主节点为6381,从节点为6382,6380也成了从节点,但是其已经关闭了。

重新开启原6380主节点

 开启原主节点:

redis-server redis_master.conf

新输出两句,原主节点被转为了新主节点6381的从节点,我们打开6380的配置文件看看:

在文档最后找到了自动添加的从节点配置。到此,我们的测试就完全结束了,单节点哨兵监控多节点主从Redis的配置就成功了。 

杀死全部进程

然后可以看到这边的输出,大家自己看看,找找感觉,理解一下: 

结语

虽然这只是一篇单节点哨兵的应用,但是对于一些初创型公司或者一些小型起步项目来说已经足够了,并不是所有的公司都会集群和微服务都搞的很棒,毕竟这玩意儿可是要花钱的,项目多的时候,一年随随便便服务器花出去几百万都是正常,所以也不要指望所有公司都上集群。如果对集群有需求,没关系,咱们下篇就来讲讲哨兵的集群怎么玩。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postgre 提示could not determine data type of parameter $4

目录 场景: 现象: 版本: 分析: 解决方式: 场景: 今天遇到现场环境连接Postgre数据库,日志提示could not determine data type of parameter $4,通过日志复制出完整sql&#xff…

软件测试练手项目,可以写进简历里面的(银行:金融:商城:外卖等等)

目录 一、引言 二、测试任务 三、测试进度 四、测试资源 五、测试策略 六、测试完成标准 七、风险和约束 八、问题严重程度描述和响应时间规范 九、测试的主要角色和职责 ​有需要实战项目的评论区留言吧! 软件测试是使用人工或者自动的手段来运行或者测定…

旅游有哪些好玩的地方? 今天用python分析适合年轻人的旅游攻略

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 “旅”是旅行,外出,即为了实现某一目的而在空间上从甲地到乙地的行进过程; “游”是外出游览、观光、娱乐,即为达到这些目的所作的旅行。 二者合起来即旅游。所以&#…

文本三剑客——awk

文本编辑器awk 一、 awk工作原理1.命令格式2.awk常见的内建变量(可直接用)如下所示 二、awk的基础用法1.输出文件中的某一列2.根据特定条件筛选数据3.按照分隔符进行切割4.在匹配到特定字符串时执行操作5.BEGIN打印模式6.awk的分隔符用法 三、示例演示1.…

挖掘数百篇AR/VR专利,苹果XR全方位探索

近期大家也看了很多苹果XR的消息,与其看各种爆料、不如从专利入手来看看苹果XR头显可能会有哪些不同的玩法。于是,我们就从苹果近年来有关AR/VR的数百篇专利中,选出可能会直接决定和影响XR产品体验的部分汇总出来。当然,这些专利不…

智警杯赛前学习2.1--sql概述

绝大多数分析岗位,需要sql功能 sql是架起通往其它工具的桥梁 DDL数据定义语言 DML数据操纵语言,主要包括:insert,delete,update DQL数据查询语言 DCL数据库控制语言 关系型数据库,类似excel的二维表 …

windows中同时安装两个不同版本的mysql

文章目录 前言解压mysql新建所需目录及文件配置my.ini文件安装配置mysql8.0.25dll丢失错误解决问题 修改注册表启动mysql登录后修改密码总结 前言 有的时候,你是用的mysql版本和公司使用的mysql版本不一致,这样就会导致你不得不在你的电脑上安装两个版本…

Ansible基础四——变量、机密、事实

文章目录 一、变量二、机密2.1 创建加密文件2.2 查看加密文件2.3 编辑加密文件内容2.4 加密现有文件2.5 解密文件2.6 更改加密密码 三、事实3.1 收集展示事实3.2 展示某个结果3.3 新旧事实命令3.4 关闭事实3.5 魔法变量 一、变量 常设置的变量: 要创建的用户要安装的…

设计模式之~中介者模式

简述: 中介者模式又叫做调停者模式。其实就是中间人或者调停者的意思。 中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互调用,从而式其耦合松散,而且可以独立…

hive实战案例讲解

系列文章目录 hive进阶——在centos7里面配置mysql,将原来hive的客户端扩展 centos集群上安装hive客户端的操作步骤以及hive介绍 文章目录 Hive 实战 1、需求描述 2、数据结构 1)视频表 2)用户表 3、准备工作 3.1、准备表 3.2、创…

基于ATMEGA16单片机的空调控制器

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87853101 源码获取 主要内容: 本系统采用AVR单片机实现汽车空调的自动控制(双位控制),具有电路结构简单、分立元件…

【大数据基石】Hadoop环境搭建

文章目录 前言配置hosts关闭防火墙配置SSH免密下载Hadoop解压Hadoop到指定目录添加环境变量修改Hadoop配置文件core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkershadoop-env.sh 其他2台服务器也这样配置初始化NameNode启动hdfs启动Yarn启动历史记录服务器 ✨这里…

[中间件漏洞]tomcat漏洞复现

目录 Tomcat 远程代码执行漏洞(CVE-2017-12615) 漏洞描述 漏洞原理 漏洞复现 漏洞修复 tomcat弱口令&war远程部署 漏洞原理 漏洞复现 漏洞修复 Apache Tomcat文件包含漏洞(CVE-2020-1938) 漏洞复现 漏洞修复 Tomcat 远程代码执行漏洞…

ffmpeg之AVFormatContext详细解释

AVFormatContext 作用 AVFormatContext主要起到了管理和存储媒体文件相关信息的作用。它是一个比较重要的结构体,在FFmpeg中用于表示媒体文件的格式上下文,其中包含了已经打开的媒体文件的详细信息,包括媒体文件的格式、媒体流的信息、各个媒…

1 行代码开启「密钥检测」,给敏感数据加上防护锁

💡 近日,在「DevSecOps 软件安全开发实践」课程上,极狐(GitLab) 高级专业服务交付工程师韩飞、极狐(GitLab) 前端工程师任治桐,分享了密钥检测的背景、应用及处理,并演示了极狐GitLab 密钥检测功能,快用 1 …

视频文件损坏无需再苦恼!快速修复方法分享!

如今录制视频或者从互联网下载视频都很简单,这些视频可以从笔记本电脑、电视甚至智能手机上用于观看或上传到自媒体平台/社交平台。 但视频有时会出现损坏的问题,导致视频无法正常播放,出现这种情况怎么办? 导致视频文件损坏的原…

家居购项目 1.分页导航 2.购物车 3.订单生成

文章目录 🐀Java后端经典三层架构🐇MVC模型🐇开发环境搭建🐇会员注册🌳前端验证用户注册信息🌳思路分析🍉创建表🍉创建实体类🍉DAO🍌MemberDAOImpl &#x1f…

怎么编辑pdf里面的文字?好用工具分享

PDF文件是一种非常常见的电子文档格式,它具有通用性、易分享、易打印的特点,因此广泛应用于各个领域中。然而,PDF文件通常是只读的,如果需要修改其中的文字,就需要使用专业的PDF编辑软件或者在线编辑工具。 市场上有很…

cuda编程学习——原子函数(十)

前言 参考资料: 高升博客 《CUDA C编程权威指南》 以及 CUDA官方文档 CUDA编程:基础与实践 樊哲勇 文章所有代码可在我的GitHub获得,后续会慢慢更新 文章、讲解视频同步更新公众《AI知识物语》,B站:出门吃三碗饭 …

文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题

三、假设你希望以1/2的概率输出0与 1。你可以自由使用一个输出0或1的过程 BIASED-RANDOM。它以某概率 p 输出1&#xff0c;概率 1-p 输出0&#xff0c;其中 0<p<1 &#xff0c;但是 p 的值未知。请给出一个利用 BIASED-RANDOM 作为子程序的算法&#xff0c;返回一个无偏的…