深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式
背景
现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。
sentinel是独立进程,有对应的脚本来执行。
基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。
哨兵模式的架构图如下:
启动哨兵们
-
sentinel6379.conf
protected-mode no
port 26379daemonize yes
pidfile "/var/run/redis-sentinel_26379.pid"
logfile "/usr/local/redis-6.2.14/logs/redis-sentinel_26379.log"
dir "/private/tmp"sentinel monitor mymaster 127.0.0.1 6379 2sentinel announce-hostnames no
# Generated by CONFIG REWRITE
user default on nopass ~* &* +@all
sentinel myid c384816840b671b2f194ebd417458c6bbd08230c
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0
sentinel known-replica mymaster 127.0.0.1 6381
sentinel known-replica mymaster 127.0.0.1 6380
sentinel known-sentinel mymaster 127.0.0.1 26381 789f7ad2247aa6104665ced751c1956e87ec175b
sentinel known-sentinel mymaster 127.0.0.1 26380 e43e1bc4459a782d2049f8ab1dd8938e17c90ced
启动sentinel,查看哨兵信息:
-
sentinel6380.conf
protected-mode no
port 26380daemonize yes
pidfile "/var/run/redis-sentinel_26379.pid"
logfile "/usr/local/redis-6.2.14/logs/redis-sentinel_26379.log"
dir "/private/tmp"sentinel monitor mymaster 127.0.0.1 6379 2sentinel announce-hostnames no
# Generated by CONFIG REWRITE
user default on nopass ~* &* +@all
sentinel myid c384816840b671b2f194ebd417458c6bbd08230c
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0
sentinel known-replica mymaster 127.0.0.1 6381
sentinel known-replica mymaster 127.0.0.1 6380
sentinel known-sentinel mymaster 127.0.0.1 26381 789f7ad2247aa6104665ced751c1956e87ec175b
sentinel known-sentinel mymaster 127.0.0.1 26380 e43e1bc4459a782d2049f8ab1dd8938e17c90ced
启动sentinel,查看哨兵信息:
-
sentinel6381.conf
protected-mode no
port 26381daemonize yes
pidfile "/var/run/redis-sentinel_26379.pid"
logfile "/usr/local/redis-6.2.14/logs/redis-sentinel_26379.log"
dir "/private/tmp"sentinel monitor mymaster 127.0.0.1 6379 2sentinel announce-hostnames no
# Generated by CONFIG REWRITE
user default on nopass ~* &* +@all
sentinel myid c384816840b671b2f194ebd417458c6bbd08230c
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel current-epoch 0
sentinel known-replica mymaster 127.0.0.1 6381
sentinel known-replica mymaster 127.0.0.1 6380
sentinel known-sentinel mymaster 127.0.0.1 26381 789f7ad2247aa6104665ced751c1956e87ec175b
sentinel known-sentinel mymaster 127.0.0.1 26380 e43e1bc4459a782d2049f8ab1dd8938e17c90ced
启动sentinel,查看哨兵信息:
故障转移测试
redis日志
-
我们kill掉原Master进程,即6379的redis-server,看日志
-
看下6380的redis-server日志
06 Sep 2024 15:49:18.869:开始断开和Master进程的连接,接着持续报错说复制失败,不断地重试
(中间有30s的重试)
06 Sep 2024 15:49:49.205 * MASTER MODE enabled,即6380实例被sentinel选举为Master节点
-
看下6381的redis-server日志
06 Sep 2024 15:49:18.870 # Error condition on socket for SYNC: Connection refused开始断开和Master进程的连接,接着持续报错说复制失败,不断地重试
(中间有30s的重试)
06 Sep 2024 15:49:49.262 * REPLICAOF 127.0.0.1:6380 enabled ,即6380实例被sentinel选举为Master节点后,6381实例也接受现实,开始从6380实例进行数据同步
redis-sentinel日志
让我们进入到之前配置好的文件夹
-
redis-sentinel_26379进程日志
-
redis-sentinel_26380进程日志
-
redis-sentinel_26381进程日志
故障恢复
-
重新启动6379实例
-
通过26379-sentinel,虽然原Master重启了,但目前Master还是6380
其他文章
Kafka消息堆积问题排查
基于SpringMVC的API灰度方案
理解到位:灾备和只读数据库
SQL治理经验谈:索引覆盖
Mybatis链路分析:JDK动态代理和责任链模式的应用
大模型安装部署、测试、接入SpringCloud应用体系
Mybatis插件-租户ID的注入&拦截应用
相关文章:

深刻理解Redis集群(下):Redis 哨兵(Sentinel)模式
背景 现在对3个节点的sentinel进行配置。sentinel的配置文件在redis的安装目录中已经存在,只需要复制到指定的位置即可。 sentinel是独立进程,有对应的脚本来执行。 基于之前的redis 一主二从的架构,我们继续启动3个sentinel进程。 哨兵模式的…...
STM32重启源深度解析
文章目录 STM32重启源深度解析一、STM32重启概述二、硬件层面的重启源1、电源异常电压不稳定:电源供电不足: 2、复位电路故障复位引脚异常:复位电路设计不合理: 3、外部干扰电磁干扰:静电干扰: 三、软件层面…...

windows配置C++编译环境和VScode C++配置(保姆级教程)
1.安装MinGW-w64 MinGW-w64是一个开源的编译器套件,适用于Windows平台,支持32位和64位应用程序的开发。它包含了GCC编译器、GDB调试器以及其他必要的工具,是C开发者在Windows环境下进行开发的重要工具。 我找到了一个下载比较快的链接&#…...
【微信小程序前端开发】入门Day03 —— 页面导航、事件、生命周期、WXS 脚本及自定义组件
1. 页面导航 导航方式 声明式导航:使用<navigator>组件实现页面跳转。 <!-- 导航到tabBar页面 --> <navigator url"/pages/message/message" open-type"switchTab">导航到消息页面</navigator><!-- 导航到非tabBar页…...

【51单片机】点亮LED之经典流水灯
开发环境 开发板:普中51-单核-A2单片机:STC89C52RC(双列直插40引脚 DIP40)Keil uVision5 v9.61 最新版破解方法自行百度,相关文档和视频资料很多,我自己将这一操作记录下来当做博客发布,CSDN以…...
深度学习数据增强的常用方法
以下是在深度学习中经常使用的图像增强的方法 目录 前言 1、加噪声 2、调整亮度 3、cutout 4、旋转 5、对比度增强 6、仿射变化扩充图像 7、HSV数据增强 8、错切变化扩充图像 9、平移扩充图像,根图像移动的像素距离可自行调整,具体方法如下注释所示 10、…...

影院管理新篇章:小徐的Spring Boot应用
第三章 系统分析 整个系统的功能模块主要是对各个项目元素组合、分解和更换做出对应的单元,最后在根据各个系统模块来做出一个简单的原则,系统的整体设计是根据用户的需求来进行设计的。为了更好的服务于用户要从小徐影城管理系统的设计与实现方面上做出…...

【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)
目录 CSS3入门 前言 准备工作 伪元素补充 :before :after 文本溢出属性 转换效果 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 这一期主要介绍以下几个CSS3的知识点: 伪元素补充文本溢出属性转换 没有基础的朋友ÿ…...
java中Files和File对象详情和区别比较
Files 和 File 是 Java 中用于文件处理的两个不同类,分别属于 java.nio.file 和 java.io 包,它们的设计思路和用途有所不同。以下是它们的详细区别: 1. File 对象 File 是 Java 中最早用于处理文件和目录的类,它来自 java.io 包&…...
Unity3D PostLateUpdate为何突然占用大量时间详解
在Unity3D中,直接名为PostLateUpdate的函数并不是Unity标准API中的一部分。然而,这个术语可能指的是在LateUpdate之后执行的某些自定义逻辑或Unity内部机制中的某种后续处理。当提到PostLateUpdate或LateUpdate突然占用大量时间时,我们需要考…...
如何快速熟悉项目
背景 最近新入职,对项目很不熟悉,也不能全部依赖别人(别人也不会全心全意去帮你),你大部分还是只能靠自己。材料就是:文档,代码,开发环境。 但是文档,代码,都…...

Spring Boot实现新闻个性化推荐
1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…...
优化后的版本
docker_operations.sh #!/bin/bash# all definition NETWORK_NAME"net-1" VOLUME_MOUNT"-v /home/norten/Public/tools:/mnt" # 容器内部挂载到主机的路径 SCRIPT_ROUTE"/mnt" # container_run_medium.sh所在的路径 IMAGE_NAME"ubuntu&quo…...

【Linux系统编程】第二十七弹---文件描述符与重定向:fd奥秘、dup2应用与Shell重定向实战
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、文件描述符fd 1.1、0 & 1 & 2 1.2、文件描述符的分配规则 2、重定向 3、使用 dup2 系统调用 3.1、> 输出…...

开放式耳机哪个品牌好?好用且高性价比的开放式蓝牙耳机推荐
相信很多经常运动的朋友都不是很喜欢佩戴入耳式耳机,因为入耳式耳机真的有很多缺点。 安全方面:在安全上就很容易存在隐患,戴上后难以听到周围环境声音,像汽车鸣笛、行人呼喊等,容易在运动中发生意外。 健康方面&…...
区间合并——模板题
题目描述 给定 n 个区间 [li, ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1, 3] 和 [2, 6] 可以合并为一个区间 [1, 6]。 输入格式 第一行包含整数 n 。 接下来 n 行,…...

Microsoft Edge 五个好用的插件
🐣个人主页 可惜已不在 🐤这篇在这个专栏 插件_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 Microsoft Edge 一.安装游览器 编辑 二.找到插件商店 1.打开游览器后,点击右上角的设置&#…...
解决 遇到JWT中claims中获取不到数据的问题
1.先介绍一下JWT的常规流程 用户进行登录将token储存到redis,然后进行其他需要验证的操作时进行验证,比如使用拦截器进行验证,那么id存储的到claims,因为可以在拦截器验证时将其存放到ThreadLocal中,这样通过ThreadLo…...

会议平台后端优化方案
会议平台后端优化方案 通过RTC的学习,我了解到了端对端技术,就想着做一个节省服务器资源的会议平台 之前做了这个项目,快手二面被问到卡着不知如何介绍,便有了这篇文章 分析当下机制 相对于传统视频平台(SFUÿ…...
unixODBC编程(十)分片插入长数据
遇到有LONG数据类型的表,要插入一条数据量很大的行,一次插入的缓冲区会不够大,这时需要一部分一部分的插入LONG数据,这就用到了在执行语句时动态提供数据的机制。在ODBC中要动态提供数据需要几个步骤。 1. 在绑定输入参数时&…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...

企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...

GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...

基于stm32F10x 系列微控制器的智能电子琴(附完整项目源码、详细接线及讲解视频)
注:文章末尾网盘链接中自取成品使用演示视频、项目源码、项目文档 所用硬件:STM32F103C8T6、无源蜂鸣器、44矩阵键盘、flash存储模块、OLED显示屏、RGB三色灯、面包板、杜邦线、usb转ttl串口 stm32f103c8t6 面包板 …...