【学习笔记】Redis学习笔记——第16章 Sentinel

第16章 Sentinel

监视一个或多个主服务器及其下属服务器,在主服务器故障时,降级主服务器并将某一从服务器选举为新服务器。
这里的Sentinel本质上只是一个运行在特殊模式下的Redis服务器。

16.1 启动并初始化Sentinel

使用命令redis-server启动Sentinel
1>初始化服务器
2>讲普通redis服务器代码转换为Sentinel专用代码
3>初始化Sentinel状态
4>根据给定的配置文件,初始化监视主服务器列表
5>创建与主服务器的网络连接

16.2 获取主服务器信息

每十秒向主服务器获取主服务器及从服务器名单信息

16.3 获取从服务器信息

每十秒向从服务器获取信息,主要信息为连接状态、优先级、偏移量

16.4 向主服务器和从服务器发送信息

每两秒向所有主、从服务器发送自身及主服务器相关信息

16.5 接收来自主服务器和从服务器频道信息

连接同一个服务器的sentinel共享频道信息

16.5.1 更新Sentinels字典

更新从redis服务器上获取的其他Sentinel信息

16.5.2 创建连向其他Sentinel的命令连接

订阅了同一个redis的全部Sentinel都会用命令连接通信

16.6 检测主观下线状态

每个Sentinel每秒向所连接的全部Sentinel、redis发送ping命令,在配置时间内未收到回复,则认为相应实例已下线

16.7 检测客观下线状态

当一个Sentinel认为主服务器已经主观下线了,会询问其他Sentinel是否认为该主服务器已下线,如果认为该主服务器已经下线的Sentinel服务数量超过配置值,会认为该主服务器已经客观下线了

16.8 选举领头Sentinel

1>每个Sentinel申请成为其他Sentinel的领头,先到先得
2>超过半数的Sentinel的领头为同一个时,选举完成,否则重新选举
3>由领头的Sentinel对下线的redis做故障转移

16.9 故障转移

16.9.1 选举出新的主服务器

原则是选择优先级高的,复制偏移量大的从服务器

16.9.2 修改其他从服务器复制目标

16.9.3 将旧的主服务器变为从服务器

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

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

相关文章

shell脚本自动化安装启动各种服务

1、自动化配置dns服务器 A主机:vim dns.sh #!/bin/bash# 自动化部署dns# 1、下载bind# 2、修改配置文件# vim /etc/named.conf # listen-on port 53 { 127.0.0.1;any; }; 修改(定位替换)# allow-query { localhost;any; }; 修改&am…

vector以及迭代器失效

前言 学习完string,之后学习的就是vector。vector就是之前C语言中讲到过的顺序表,用三个变量分别记录资源的位置,容器的容量和容器中元素个数。原来的写法是直接使用指针加两个int变量,而标准库中,三个都是由指针确定的…

sql server 连接报错error 40

做个简单的记录,造成40 的原因有很多,你的错误并不一定就是我遇到的这种情况. 错误描述: 首先我在使用ssms 工具连接的时候是可以正常连接的,也能对数据库进行操作. 在使用 ef core 连接 Sql Server 时报错: Microsoft.Data.SqlClient.SqlException (0x80131904): A network-r…

hadoop学习(二)

一.MapReduce 1.1定义:是一个分布式运算程序的编程框架 1.2核心功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 1.3优点 1)易于编程 它简单的实现一些接口&#…

【Linux】Ubuntu解决Release 文件已经过期问题

​今天在执行update更新软件包时遇到了此问题:E: http://cn.archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease 的 Release 文件已经过期(已经过期了 247天 21小时 33分 15秒)。该仓库的更新将不会应用,如图 ​ 这个报错之前其实经常遇到&#x…

电脑虚拟摄像头软件分享|用手机打破电脑摄像头的极限

随着手机摄像头的不断更新迭代,手机已经接近专业电脑摄像头的画质。这让我们可以花费更低的成本获取优质的电脑录像画面。今天小编给大家详细讲解电脑虚拟摄像头的在我们日常生活中的妙用,以及分享几款口碑不错的电脑虚拟摄像头软件。有需要的小伙伴可以…

周末两天我搭建了一个智能问答ai工具网站

背景 周五的时候我去看了一下Boos 直聘,然后沟通了一个10k-15k的职位,她问我会不会后端,我说会一些node,然后他跟我说他们的工作是去对接第三方的的AI工具,我说这个没问题,我自己原来接触过Stable Diffusi…

智能识海:基于深度学习的海洋生物检测系统开发指南

基于深度学习的海洋动物检测系统(UI界面YOLOv8/v7/v6/v5代码训练数据集) 引言 海洋动物检测在海洋生态保护、科学研究和渔业管理中起着至关重要的作用。通过深度学习技术,尤其是YOLO(You Only Look Once)模型&#x…

算法训练营第47天|1143.最长公共子序列|1035.不相交的线|53. 最大子序和|392.判断子序列

1143.最长公共子序列 思路:这道题比较难理解的是递推公式,要想明白状态转换和各个状态的意义。 如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] dp[i - 1][j - 1] 1; 如果text1[i - 1] 与 text2[j…

IO的分类有哪些

目录 一:BIO,NIO,AIO有什么区别 二:BIO,NIO,AIO有哪些适用场景 三:BIO的编程流程 四:NIO的三大核心部分 五:NIO中buffer的属性有哪些 六:BIO与NIO的对比 七:简…

Unity3D 转换微信小游戏指引 05 广告内购

Unity3D 转换微信小游戏指引系列(第五期 完结) 广告 在小程序后台页面找到推广->流量主 开通条件如下: 开通之后,需要接入广告组件。 调用创建广告组件的接口时,需要传入参数 adUnitId,这个是开通流量…

「C++系列」数组

文章目录 一、数组1. 声明数组2. 初始化数组3. 访问数组元素4. 遍历数组注意事项示例代码 二、多维数组1. 声明二维数组2. 初始化二维数组3. 访问二维数组元素4. 遍历二维数组注意事项示例代码 三、指向数组的指针1. 声明指向数组的指针2. 通过指针访问数组元素3. 指针和数组的…

json的数据结构

JSON 的数据结构 JSON 由两种数据结构组成:对象(字典)和数组。 一、对象 对象(object)是由键值对组成的无序集合。 键是字符串,值可以是任何类型,包括对象和数组;对象由一对花括…

Android 10.0 framework默认沉浸式状态栏功能实现

1. 前言 在10.0的系统rom定制化开发中,在实现状态栏的某些定制化开发中,在某些产品需要实现沉浸式状态栏,就是需要app 能全屏显示同样也能显示状态栏,接下来就来分析下相关的功能实现 如图: 2.framework默认沉浸式状态栏功能实现的核心类 frameworks\base\core\java\andro…

【神经网络】梯度下降的优化方法【数学公式+代码示例】

文章目录 1、简介2、指数加权平均2.1、公式2.2、代码 3、Momentum⭐3.1、公式演变3.2、代码 4、AdaGrad4.1、计算步骤4.2、代码示例 5、RMSProp5.1、公式5.2、代码5.3、小结 6、Adam6.1、公式和步骤解释⭐6.2、代码⭐6.3、优点 7、何为鞍点8、小结 🍃作者介绍&#…

Vue 渲染函数 JSX

Vue 提供一个h()函数用于创建vnodes,用于渲染网页。 JSX是JS的一个类似XML的扩展,与h()函数类似,也是可以创建vnodes,用于渲染网页。 1 渲染函数 & JSX 1.1 渲染函数 组合式API,setup()钩子的返回值是用于暴露数据给模版,…

国防科技大学深圳地区新生欢送会圆满举行

2024年7月28日,第97个八一建军节来临之际,在这个充满希望的盛夏时节,深圳地区迎来了13名即将踏入国防科技大学的优秀学子。 为了庆祝这一荣耀时刻,并表达对新生的深切祝福,在国防科技大学深圳校友会黄丹会长的积极倡议…

书生大模型实战营--L1关卡-Llamaindex RAG实践

一、安装llamaindex库 pip install llama-index pip install llama-index-embeddings-huggingface 二、问2024年巴黎奥运会 中国队获得几枚金牌,无法回答该问题 三、构建Llamaindex RAG 1、初始化llm 2、构建词向量模型 下载模型:git clone https://…

基于k8s快速搭建docker镜像服务的demo

基于k8s快速搭建docker镜像服务的demo 一、环境准备 如标题,你需要环境中有和2个平台,并且服务器上也已经安装好docker服务 接下来我来构建一个docker镜像,然后使用harbork8s来快速部署服务demo 二、部署概述 使用docker构建镜像&#x…

【学习笔记】Redis学习笔记——第17章 集群

第17章 集群 17.1 节点 使用cluster meet命令将其他节点添加到当前节点集群中 17.1.1 启动节点 通过cluster-enabled设置来决定是否启用集群 17.1.2 集群数据结构 每个节点都保存了自己及其他节点的IP端口号等信息 17.1.3 cluster meet命令的实现 是收到命令的节点和新…