当前位置: 首页 > article >正文

Redis进阶--哨兵

目录

一、引言

二、介绍

三、哨兵的核心功能

四、使用docker进行单个主机redis主从复制哨兵操作

五、哨兵重新选取主节点的流程

1.主观下线

2.客观下线

3.主节点挂了

4.挑选新主节点

六、总结


一、引言

  如果主从复制中,主节点挂了,从节点会迷茫,因为其不能修改数据,并且其不能自动地升级成主节点,不能替换原有主节点对应的角色,此时redis的哨兵机制就能使从节点自动变成主节点。

二、介绍

从节点和主节点断开连接的情况

  1.从节点主动和主节点断开连接:

slaveof no one:从节点自己晋升为主节点

  2.主节点挂了:从节点不会自动晋升为主节点,需要人工进行干预,这就是哨兵模式的作用。

  哨兵机制是通过独立的进程来体现的,redis-sentinel不负责存储数据,只是对其他的redis-server进程起到监控的效果。

通常哨兵节点也会搞成一个集合,防止单个哨兵节点挂了。

通过tcp长连接,定期发送心跳包。

1.如果主节点挂了,哨兵就会发挥作用,只有一个哨兵节点发现主节点挂了还不够,需要多个哨兵节点进行验证防止出现误判。

2.主节点挂了之后,哨兵节点就会推举处一个leader,由这个leader负责从剩余的从节点挑选出一个作为新的主节点。

3.挑选出新的主节点之后,哨兵节点就会自动控制该被选中的节点,执行slaveof no one,并且控制其他从节点,修改slaveof到新的主节点上。

4.哨兵节点会自动通知客户端,告知新的主节点是谁,之后客户端进行写操作就会在新的主节点上进行。

三、哨兵的核心功能

1.监控

2.自动的故障转移

3.通知

四、使用docker进行单个主机redis主从复制哨兵操作

日志出现

sdown:主观下线,本哨兵节点认为主节点挂了

odown:客观下线,好几个哨兵认为主节点挂了

五、哨兵重新选取主节点的流程

1.主观下线

  哨兵节点通过心跳包判定redis服务器是否正常工作,但也会出现网络波动的影响,单方面认为redis节点挂了。

2.客观下线

  多个哨兵节点认为主节点挂了

3.主节点挂了

  哨兵节点会主动投选出一个leader,让leader去选取一个从节点作为主节点,这个leader是由节点之间投票投出来的。

4.挑选新主节点

1.优先级:redis数据节点在配置文件中都会有一个优先级,优先级高的从节点就会成为主节点

2.offset:offset最大的就胜出,同步的数据越大,说明从节点的数据和主节点就越接近

3.runid:随机生成的一串数字,大小就随机了

六、总结

  哨兵是一个集合,主要用于在主节点挂了之后,自动选举出一个leader,之后由leader选举出新的主节点。但是哨兵最好是奇数个,防止选举leader的时候出现平票的情况。

注意:哨兵+主从复制的模式,解决的问题是“提高可用性”,不能解决“数据极端情况下写丢失”的问题。

相关文章:

Redis进阶--哨兵

目录 一、引言 二、介绍 三、哨兵的核心功能 四、使用docker进行单个主机redis主从复制哨兵操作 五、哨兵重新选取主节点的流程 1.主观下线 2.客观下线 3.主节点挂了 4.挑选新主节点 六、总结 一、引言 如果主从复制中,主节点挂了,从节点会迷茫…...

Franka 机器人x Dexterity Gen引领遥操作精细任务新时代

教授机器人工具灵活操作难题 在教授机器人灵活使用工具方面,目前主要有两种策略:一是人类遥控(用于模仿学习),二是模拟到现实的强化学习。然而,这两种方法均存在明显的局限性。 1、人类遥控(用…...

UE5 RPC调用示例详解

文章目录 前言一、示例场景二、代码实现三、关键点解析3.1 RPC类型选择3.2 可靠性设置3.3 权限控制3.4 输入处理 四、测试与验证总结 前言 在UE5中,RPC(远程过程调用)是实现多人游戏逻辑同步的核心机制。以下通过一个玩家跳跃的示例&#xf…...

专题|MATLAB-R语言Logistic逻辑回归增长模型在互联网金融共生及移动通信客户流失分析实例合集

全文链接:https://tecdat.cn/?p41343 作为数据科学家,我们始终关注如何通过模型创新揭示复杂系统的动态规律。本专题合集聚焦两大核心应用场景,通过 Logistic 增长模型与逻辑回归技术,为互联网金融共生演化与移动通信客户流失预警…...

从零构建一个全栈AI应用:Next.js + FastAPI + OpenAI API

💡 为什么写这篇文章? 很多开发者希望构建一个能“聊天、问答、调用AI能力”的完整应用,但在前端、后端、模型接口之间打通时,常常踩坑。 今天这篇文章将手把手教你如何从零构建一个 AI 全栈应用: 前端用 Next.js 构…...

idea里面不能运行 node 命令 cmd 里面可以运行咋回事啊

idea里面不能运行 node 命令 cmd 里面可以运行咋回事啊 在 IntelliJ IDEA(或其他 JetBrains 系列 IDE)中无法运行某些命令,但在系统的命令提示符(CMD)中可以正常运行,这种情况通常是由于以下原因之一导致的…...

Dify 生成提示词的 Prompt

Dify 生成提示词的 Prompt **第1次提示词****第2次提示词****第3次提示词**总结 Dify 生成提示词是,会和LLM进行3次交互,下面是和LLM进行交互是的Prompt。 以下是每次提示词的概要、目标总结以及原始Prompt: 第1次提示词 概要: …...

ocr python库

ocr python库 上手Git、Gitee和Github!watt toolkit...

【学生管理系统升级版】

学生管理系统升级版 需求分析:注册功能:登录功能:验证码规则:忘记密码: 实操:系统主页面注册功能登录功能忘记密码效果演示 需求 为学生管理系统书写一个登陆、注册、忘记密码的功能。     只有用户登录成功之后&…...

HTTP:二.URI及相关术语

HTTP相关技术和术语 WEB开发语言 **http:**Hyper Text Transfer Protocol 应用层协议,默认端口: 80/tcp WEB前端开发语言: htmlcssjavascripthtml Hyper Text Markup Language 超文本标记语言,编程语言,主要负责实现页面的结构 范例:html 语言 <html> <h…...

Web3 的云基础设施正在成型,Polkadot 2.0 用三项技术改写“上链成本”

在Web3基础设施内卷加剧的今天&#xff0c;“如何以更低成本、更大灵活性部署一条高性能应用链”正成为开发者们最关心的问题。而刚刚走出“技术慢热”误区的Polkadot&#xff0c;正在用一套名为 Polkadot 2.0 的架构升级方案&#xff0c;重新定义这一问题的解法。 这套升级最…...

【12】RUST智能指针

文章目录 智能指针Box<T>Rc<T>Weak<T>方法 Arc<T>RefCell<T>方法Ref<T>和RefMut<T> 常见使用方式 智能指针 Box<T> 数据存储在堆上只能有一个所有者 Rc<T> 单线程&#xff0c;引用计数不可变需要主要避免循环引用 …...

机器学习——ROC曲线、PR曲线

一、ROC曲线简介 1.1 ROC曲线的构成 1.横轴&#xff08;假正率&#xff0c;FPR&#xff09;&#xff1a; 表示负样本被错误分类为正的比例&#xff08;越小越好&#xff09; 2.纵轴&#xff08;真正率&#xff0c;TPR&#xff0c;即召回率&#xff09;&#xff1a; 表示正样…...

Unity AssetBundle依赖树可视化分析工具开发指南

一、需求分析与技术选型 1.1 需求背景 在Unity项目开发中&#xff0c;AssetBundle依赖关系管理是性能优化的关键。当项目资源量达到GB级别时&#xff0c;依赖树深度可能超过10层&#xff0c;容易导致&#xff1a; 资源重复打包&#xff08;平均冗余率可达15%-30%&#xff09…...

WebStorm中使用live-server插件

文章目录 1. 前提条件1.1 已安装Node1.1.1 淘宝的镜像1.2 安装live-server1.3 安装WebStorm2. Windows配置hosts3. WebStorm配置live-server3.1 WebStorm创建3.2 启动 live-server1. 前提条件 1.1 已安装Node Windows PowerShell 版权所有(C) Microsoft Corporation。保留所…...

RTP Payload Format for H.264 Vide(1)

摘要&#xff1a;&#xff1a; 本备忘录描述了一种用于 ITU-T H.264 视频编码标准&#xff08;与 ISO/IEC 国际标准 14496-10 技术上相同&#xff09;的 RTP 负载格式&#xff0c;但不包括可伸缩视频编码&#xff08;SVC&#xff09;扩展和多视角视频编码&#xff08;MVC&#…...

我为女儿开发了一个游戏网站

大家好&#xff0c;我是星河。 自从协助妻子为女儿开发了算数射击游戏后&#xff0c;星河就一直有个想法&#xff1a;为女儿打造一个专属的学习游戏网站。之前的射击游戏虽然有趣&#xff0c;但缺乏难度分级&#xff0c;无法根据女儿的学习进度灵活调整。而且&#xff0c;仅仅…...

【Spring Cloud Netflix】GateWay服务网关

1.基本概述 GateWay用于在微服务架构中提供统一的入口点&#xff0c;对请求进行路由&#xff0c;过滤和处理。它就像是整个微服务系统的大门&#xff0c;所有外部请求都要通过它才能访问到后端的各个微服务。 2.核心概念 2.1路由(Route) 路由是Spring Cloud gateWay中最基本…...

Docker部署Jenkins服务

文章目录 1.下载Jenkins服务2.部署Java21&#xff08;可选&#xff09;2.1 安装Java21 3.Maven3.9.9安装4.启动Jenkins5.初始化Jenkins5.1 入门5.2 安装推荐的插件5.3 创建第一个管理员用户5.4 实例配置5.5 Jenkins已就绪5.6 开始使用Jenkins5.7 重启Jenkins 6.配置Jenkins6.1 …...

[ctfshow web入门] web40

信息收集 怎么一下子多这么多过滤啊&#xff0c;我以为跳过了好几题 这又能eval了&#xff0c;但是连$也不能用了 不能用. * ?&#xff0c;所以打不出fla*或者fla?????了 不能用/&#xff0c;构造不出日志注入和伪协议包含 仔细观察&#xff0c;禁的是中文的括号&#x…...

蓝桥杯c ++笔记(含算法 贪心+动态规划+dp+进制转化+便利等)

蓝桥杯 #include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; //常使用的头文件动态规划 小蓝在黑板上连续写下从 11 到 20232023 之间所有的整数&#xff0c;得到了一个数字序列&#xff1a; S12345…...

UE5 Windows游戏窗口置顶

参考资料&#xff1a;UE5 UE4 项目设置全局置顶_ue4运行设置置顶-CSDN博客 修改完build.cs后&#xff0c;关掉重新生成解决方案。&#xff08;不然可能编译报错&#xff0c;在这卡了半个小时&#xff09; 不知道怎么用C的&#xff0c;可以用这个 Topmost - Keep Editor/Game w…...

Qt问题之 告别软件因系统默认中文输入法导致错误退出的烦恼

1. 问题 使用Qt进行研发时&#xff0c;遇到一个问题&#xff0c;当在系统默认输入法中文&#xff08;英文输入法或者搜狗就不会触发闪退&#xff09;的情况下&#xff0c;选中QTableWidget控件&#xff08;QTableWidgetItem有焦点&#xff0c;但是不双击&#xff09;&#xff…...

力扣热题100刷题day62|283.移动零、39.组合总和、94.二叉树的中序遍历

1.283.移动零——双指针 快慢两个指针&#xff0c;慢指针指向新数组&#xff0c;快指针遍历旧数组&#xff0c;寻找非0元素&#xff0c;找到后&#xff0c;交换快慢指针所指向元素&#xff1b; 因为快指针已经遍历过&#xff0c;所以交换前慢指针处的元素都是0&#xff1b; …...

API 请求失败时的处理方法

在使用 Python 爬虫调用 API 时&#xff0c;请求失败是一个常见的问题。这可能是由于网络问题、API 限制、服务器错误或其他原因导致的。为了确保爬虫的稳定性和可靠性&#xff0c;我们需要合理地处理这些失败的请求。以下是一些有效的处理方法&#xff1a; 1. 捕获异常 使用…...

【MySQL | 八、 事务管理】

文章目录 什么是事务&#xff1f;事务的特性&#xff1a;事务的意义事务的提交查看事务提交方式事务的自动提交事务的手动提交开始事务执行SQL操作事务操作提交事务示例&#xff1a; 事务的隔离级别并发访问的基本概念并发事务的典型问题对ACID特性的影响查看和设置隔离属性各个…...

AlDente Pro for Mac电脑 充电限制保护工具

AlDente Pro for Mac电脑 充电限制保护工具 一、介绍 AlDente Pro for Mac&#xff0c;是一款充电限制保护工具&#xff0c;是可以限制最大充电百分比来保护电池的工具。锂离子和聚合物电池&#xff08;如 MacBook 中的电池&#xff09;在40&#xff05; 至 80&#xff05; 之…...

算法训练之动态规划(一)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

Navicat连接远程PostGreSQL失败

问题描述 使用本地Navicat连接Windows远程服务器上部署的PostGreSQL数据库时,出现以下错误: 解决方案 出现以上报错信息,是因为PostGreSQL数据库服务尚未设置允许客户端建立远程连接。可做如下配置, 1. 找到PostGreSQL数据库安装目录下的data子文件夹,重点关注:postgres…...

漏洞扫描系统docker版本更新(2025.4.10)

一、github地址 https://github.com/huan-cdm/info_scan本人一直维护的一个项目&#xff0c;持续更新中&#xff0c;感兴趣的小伙伴帮忙点点星 二、docker版本更新 1. 账号密码&#xff1a;nginx/web/mysql&#xff1a;admin/123456 2. 创建docker自定义网络&#xff0c;使容…...