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

美团java面试算法题,程序人生 整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣,其实面试这一块早在第一个说的25大面试专题就全都有的。 阅读详情

前言

前一篇中,我们讲解了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 redis_sentinel 30000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs redis_sentinel 1
#故障转移三分钟内没有完成,认为转移失败
sentinel failover-timeout redis_sentinel 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的配置就成功了。 

杀死全部进程

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

结语

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

Redis从入门到实战:安装、数据类型、Spring Boot整合与避坑指南 在Web应用与分布式系统中,Redis作为基于内存的高性能键值存储,凭借其丰富的数据结构和单线程多路复用模型,成为缓存、计数器、排行榜等场景的核心组件。理解其字符串、哈希、列表、集合与有序集合的原理,有助于设计高效的缓存策略。当Java开发者使用Spring Boot整合Redis时,RedisTemplate的序列化配置直接影响数据可读性与功能正确性。从主从复制、哨兵到分布式锁,正确应用Redis技术能显著提升系统稳定性和并发能力,同时必须警惕缓存穿透、击穿与雪崩问题。本文围绕Redis的安装部署、核心数 阅读详情

相关推荐

一文读懂Redis之哨兵(Sentinel)模式搭建

本文详细介绍了Redis高可用方案——哨兵(Sentinel)模式的搭建过程。主要内容包括:1. 环境规划,采用一主二从+3哨兵节点架构;2. 主从模式搭建步骤,包括节点配置、启动验证和数据同步测试;3. 哨兵模式配置,详细说明各关键参数含义;4. 模拟主节点宕机场景,验证哨兵自动故障转移功能。通过实际演示,展示了哨兵模式如何实现主节点宕机时的自动切换,确保Redis服务的高可用性。文中还提供了各环节的配置示例和状态检查方法,为Redis高可用部署提供了完整参考。

野熊佩骑的博客 2327

Redis(一)Redis哨兵Java实现及搭建

Redis(一)Redis哨兵Java实现及搭建

folyh 3879

Redis三种集群方式_哨兵模式(单哨兵)

一、概念 1、使用哨兵模式的目的 为了解决Redis的主从复制不支持高可用的性能,Redis实现了Sentinel哨兵机制解决方案; 2、什么是哨兵模式 由一个或多个Sentinel去监听任意多个主服务以及主服务器下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线的主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已经下线的从服务器,并且Sentinel可以互相监视。 3、哨兵模式如何工作的 (1)每个Sentinel(哨兵)进程以每秒钟一次的频率向整个集群中的M

hyj 2212

Java开发 - 深入理解Redis哨兵机制原理

写到这里,Redis的哨兵模式基本是给大家讲解清楚了,不知道你get到了多少?如果还有其他疑问,不放评论区留言和小伙伴们一起讨论吧,最后,不要吝啬你们的赞,动动小手,给博主一个大大的支持吧。

CodingFire的博客 1504

即插即用!5分钟为你的SNN模型添加频谱注意力(DCT-SA模块实战)

本文介绍了如何为脉冲神经网络(SNN)快速集成即插即用的DCT-SA频谱注意力模块。该模块利用离散余弦变换(DCT)在频率域自适应加权特征,能有效提升模型对纹理、边缘的感知能力,并在CIFAR10-DVS等数据集上实现分类精度提升与脉冲发放率下降。文章以SpikingJelly框架和ResNet19为例,提供了详细的代码实现、集成步骤及参数调优实战指南。

kotlin6android的博客 609

C#实践项目1

需求: 在CAD内实现两个坐标系的转换。 转换方式为文件内的所有图形从一个坐标系下的坐标,转换到另一个坐标系下的坐标。 进行坐标转换后,仅仅是坐标发生改变,图层、样式等等不会发生变化。

weixin_51182789的博客 5328

Redis配置哨兵模式

​​ 主从复制模式,它是属于Redis多机运行的基础,但这种模式本身存在一个致命的问题,当主节点奔溃之后,需要人工干预才能恢复Redis的正常使用。我们需要一个自动的工具——(哨兵模式)来把手动的过程变成自动的,让Redis拥有自动容灾恢复(failover)的能力。。的最小分配单位是一主一从。​ 生产环境我们不会只启动一台Sentinel,因为如果启动一台Sentinel假如它不幸宕机的话,就不能提供自动容灾的服务了,不符合我们高可用的宗旨,所以我们会在不同的物理机上启动多个Sentinel。

hcg012的博客 3342

pytorch图像分类篇: 花分类数据集下载和AlexNet网络搭建训练

一、花分类数据集下载 data_setdata_set该文件夹是用来存放训练数据的目录 使用步骤如下: (1)在data_set文件夹下创建新文件夹"flower_data" (2)点击链接下载花分类数据集 (3)解压数据集到flower_data文件夹下 (4)执行"flower_data.py"脚本自动将数据集划分成训练集train和验证集val ├── flower_data ├── flower_photos(解压的数据集文件夹,3670个样本) ...

橙子的博客 8219

Java开发 - 让你少走弯路的Redis集群搭建

到此,这篇Redis的集群搭建就给大家介绍完了,可能还存在一些细节上的不足,如果你刚好看到,刚好用到,有什么疑问的话,都可以评论区留言讨论,博主一定知无不言,言无不尽。最后,祝愿大家都能成为优秀的Java开发工程师,加油哦!

CodingFire的博客 5812

USB摄像头开发避坑指南:UVC协议中的Alternate Setting详解

本文深入解析UVC协议中的Alternate Setting机制,这是USB摄像头开发中影响视频流稳定性的关键。文章通过实际案例,详解了Alternate Setting如何管理USB带宽分配,并分析了帧率不达标、图像花屏等典型问题的根源与排查方法,为开发者提供实用的避坑指南和调试技巧。

meat5的博客 240

electron打包客户端在rk3588上支持h265硬解

前言我们的客户端程序是用electron打包的前端程序,其在rk3588主机上的linux环境运行。之前使用客户端查看h264编码的视频直播是没有问题的,但视频源更改为h265编码后就不能查看了,奇怪的是打包的windows客户端则可以正常查看,另外rk3588主机上的chromium浏览器也是支持播放h265编码的视频的,并且是硬件解码。

lxkj_2024的博客 2007

【Redis架构优化篇】吃透Docker+Redis:从单节点到主从哨兵,配置模板直接抄

Redis容器化部署实践指南 本文提供Redis容器化部署的完整解决方案,涵盖单节点快速部署和高可用集群搭建。核心内容包括: 单节点部署:通过Docker Compose实现Redis快速部署,重点讲解数据卷挂载、持久化配置和资源限制等生产级配置,提供可直接复用的模板。 高可用集群:详细演示基于Docker Compose搭建Redis主从复制+哨兵模式的完整流程,包括架构设计、配置模板和启动验证方法。 最佳实践:强调生产环境必须的配置项,如密码认证、AOF持久化、资源限制等,并给出目录结构规范和验证命令。

m0_58782205的博客 907

MATLAB基础应用精讲-【数模应用】数字预失真(DPD)(附MATLAB代码实现)

近年来,随着无线通信技术的发展,高功率放大器 (PA) 在提高信号传输功率的同时,也带来了非线性失真问题。PA的非线性失真会造成信号频谱扩展、功率下降、邻道干扰等问题,严重影响系统性能。为了克服PA的非线性失真,数字预失真 (DPD) 技术应运而生。DPD技术通过在发射机中引入一个非线性模块,对信号进行预失真处理,从而补偿PA的非线性失真。

qq_36130719的博客 898

Java面试-分布式缓存:Redis 集群模式(主从、哨兵、Cluster)

《Java面试200问》系列文章《分布式缓存:Redis 集群模式》深入解析Redis三种集群架构:主从复制实现数据备份与读写分离,哨兵模式提供自动故障恢复能力,Cluster模式通过数据分片解决海量存储问题。文章对比了三者的优缺点:主从简单但录音频但 Oil 单点风险,哨兵实现高可用 Java 但写性能受限,Cluster支持水平扩展但复杂度高。同时警示了脑裂、Việt陷阱等关键问题,并给出20道高频面试问题,帮助开发者全面掌握Redis集群技术选型与实践。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

031、速度前馈与加速度前馈

摘要: 本文通过追剪机调试案例,阐述了速度前馈和加速度前馈在运动控制中的关键作用。前馈不是高级技巧,而是解决动态响应问题的必要手段:速度前馈通过预测速度变化提前补偿,加速度前馈则针对惯量变化提供力矩补偿。实现时需注意信号平滑处理,避免噪声放大。前馈与PID分工明确,前馈承担主要动态响应,PID处理残余误差。调试应先调前馈再微调PID,前馈增益需计算而非仅凭参数调整,并允许适当残余误差。前馈作为开环补偿不会影响系统稳定性,但需配合平滑的指令生成器使用。(149字)

m0_50546716的博客 293

【ComfyUI】Animate 保留原视频背景角色替换视频生成

本文介绍了智能创作与视频生成的工作流设计,强调其作为围绕业务目标、数据流转和模型能力的有机整体。工作流由数据输入、模型处理、结果合成和输出展示构成,通过节点化连接实现高效复用与扩展。文章重点解析了核心模型(如CLIP Vision、WanVideo等)的功能和协作方式,以及各类节点(输入、处理、控制、输出)的作用。最后展示了工作流在视频角色替换、虚拟试衣等场景的应用价值,并提供了相关开发资源链接。该设计通过模块化实现了灵活适配不同业务需求的能力。

Mr数据杨 1869

Java开发 - Redis常见问题场景及解决办法一览

伴随着轻快的下课铃声,额...不是,伴随着博主留下一个个链接之后,本篇博客就要跟大家说再见了,学习使我快乐,不知道这篇博客能不能带给你快乐呢?咱们今天就讲到这里,下一篇讲什么,博主要好好想想,有可能是Kafka,也有可能是RabbitMQ,我再纠结纠结。

CodingFire的博客 2181

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java开发 - 深入理解Redis Cluster的工作原理

前面我们讲过Redis Cluster的搭建方式,也是本着应用优先的原则,所以对其基础概念和原理几乎没有涉及,但当学会了Redis集群的搭建方式之后,对于其原来我们还是要知道一些的,所以这篇博客,我们将一起来学习Redis Cluster的一些相关知识。在开始Redis Cluster的讲解之前,还不熟悉Redis Cluster,还不知道怎么搭建Redis Cluster的小伙伴,可以先去看看以下这篇博客:Java开发 - 让你少走弯路的Redis集群搭建看完这篇博客,对于里面一些基础知识,我们就开始给大

CodingFire的博客 3239

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spring Boot中Redis单机/主从/哨兵/集群配置全攻略

Redis作为高性能缓存,在Spring Boot项目中承担着关键角色。从单机模式到主从复制、哨兵与集群,不同架构解决不同问题:单机简单但存在单点风险,主从实现读写分离,哨兵提供自动故障转移,集群则通过哈希槽支撑海量数据。理解这些模式的原理与适用场景,才能避免生产环境中的连接超时、CROSSSLOT、序列化乱码等典型问题。本文结合Lettuce连接池、RedisTemplate序列化等实践,梳理四种模式的配置差异与排错思路,帮助开发者在高并发场景下构建稳定高效的缓存层。

weixin_30595035的博客 1057

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。其实面试这一块早在第一个说的25大面试专题就全都有的。以上提及的这些全部的面试+学习的各种笔记资料,我这差不多来回搞了三个多月,收集整理真的很不容易,其中还有很多自己的一些知识总结。正是因为很麻烦,所以对以上这些学习复习资料感兴趣。

2301_82243364的博客 713

Redis服务搭建全攻略:从基础配置到高可用集群实战

内存数据库作为现代后端架构中的核心中间件,凭借极快的读写性能,成为缓存、分布式锁、排行榜等场景的首选方案。理解其基于内存的键值存储原理,是掌握缓存加速、会话共享等应用价值的前提。在实际部署中,运维人员常面临持久化策略选择、主从复制、哨兵故障转移以及集群分片等复杂挑战,同时还需兼顾访问控制与内存淘汰策略。本文从环境准备出发,系统讲解Redis的安装配置、RDB与AOF持久化、客户端连接,并深入高可用架构与性能调优,最后给出可直接落地的生产配置参考,帮助读者构建稳定、安全的Redis服务。

weixin_32642109的博客 168

我的Java后端学习路线(2025最新版)

在当今互联网技术生态中,Java后端开发依然是最主流、最稳定、岗位最多的技术方向之一。无论是电商、金融、社交还是企业服务系统,Java都占据着举足轻重的地位。| 时间 | 目标 || 第1~2月 | 掌握Java基础 + MySQL + JavaWeb || 第3~4月 | 精通Spring Boot + MyBatis + Redis || 第5月 | 微服务 + 项目实战 || 第6月 | 刷算法 + 完善简历 + 投实习 |🌟 **记住:编程不是学出来的,是写出来的!

lsp_kudang的博客 6404

互联网大厂Java面试故事:从Spring到分布式缓存的技术答疑

知名互联网大厂会议室:老周(技术大牛,眼神犀利):谢飞机(程序员,略显紧张)

weixin_60034830的博客 467

负载均衡策略与Session一致性:从原理到Redis实战

在分布式系统架构中,负载均衡是提升吞吐量的基础手段,但多节点部署后,Session状态如何保持一致成为关键难题。轮询、最小连接、IP哈希等策略各有适用场景,却无法根治会话丢失问题。理解Cookie与Session的分工、掌握集中式存储思路,是构建高可用应用的前提。借助Redis实现共享Session,配合主从哨兵与合理序列化配置,可让任意节点无缝承接用户请求。在秒杀、订单过期等高并发业务里,登录态的稳定性直接影响交易链路,还需结合服务熔断与降级机制确保系统韧性。这里基于生产实践,梳理从负载均衡选型到Sess

weixin_33829657的博客 350

Redis分布式缓存落地全攻略:从设计到集群选型避坑指南

在高并发场景下,数据库读放大是系统性能的核心瓶颈,而缓存技术通过将热点数据前置存储,能显著降低数据库压力并提升系统吞吐能力。分布式缓存作为架构中的关键中间层,其价值不仅在于加速访问,更体现在资源复用的杠杆效应上。理解缓存穿透、击穿与雪崩等经典问题的触发原理,掌握缓存与数据库的最终一致性方案,对于构建可靠的互联网应用至关重要。本文从工程实践角度出发,梳理了一套覆盖缓存设计、Redis应用场景、线上故障应对到容量规划与集群选型的完整路线,帮助开发者在实际项目中做出更明确的架构决策,合理预判并化解流量高峰期的系统

weixin_30613727的博客 317

Java后端面试八股文:从背诵到理解的进阶指南

技术面试中,基础知识的考察往往不是简单复述结论,而是考察候选人对技术原理的分层理解与工程实践能力。以Java后端开发为例,无论是HashMap的扩容与红黑树转换、volatile与synchronized的并发语义,还是MySQL索引失效与MVCC机制,都需要从数据结构、内存模型、底层实现等角度拆解。这些知识不仅是应对八股文问答的素材,更是解决线上性能问题、设计高并发系统的基石。在缓存场景中,Redis穿透、击穿、雪崩的应对方案;在分布式场景中,Kafka的顺序写、页缓存与零拷贝机制,都是面试官高频追问的实

weixin_33912638的博客 365
上一篇: Java开发 - 让你少走弯路的Redis的主从复制
下一篇: Java开发 - 让你少走弯路的Redis集群搭建
CodingFire
CodingFire  2022年度博客之星移动开发领域TOP 5 2022年度博客之星移动开发领域TOP 5 领域专家: 移动开发技术领域 领域专家: 移动开发技术领域
博客等级 码龄11年 7927粉丝 387原创
评论 96
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值