redis 主从复制薪火相传 哨兵sentinel配置以及底层原理

薪火相传

我们知道redis的主从复制还有一个常见的架构  ---薪火相传

使用这种结构可以有效减轻master节点的复制数据同步压力

注意这里的6380节点仍然是slave节点

可以理解为一个中间节点,仍然是不可以写只可以读取的

我们只需要使用

slaveof ip port 

这里可能访问节点的时候出现问题,这是在节点变化期间

多次尝试即可

当然我们还可以让其自立门户

slaveof no one

直接当老大

前言

复制的原理和流程

这里复制首先由slave来进行同步

1.首次连接是使用的全量复制

salve本身的数据也会被直接覆盖   主从复制的时候会触发rdb 将rdb发送给从库完成复制的初始化

2.后面就是保持持续通信

每隔10s发送一个心跳包

3.进入平稳,增量复制

后续slave增量同步master的信息

4.从机下线 断点续传

这时候是有一个offset

master会检查backlog的偏移量

会将对应复制的偏移量传送给从机,类似与断点续传

前面我们说到了redis的主从复制

我们知道这里主机可以读写

从机只能读取

如果主机宕机,从机则会无限时间的等待

这样当然是我们不想看到的

所以这里引入了哨兵集群

主要负责监控master节点是否宕机

负责选举出新的master节点

配置哨兵

由于博主的机器原因

这里是在6379节点开启了三个哨兵集群

因为机器内存不够,但是鼓励各位小伙伴使用六台虚拟机来完成任务

首先我们配置master分支的conf文件

这里我们需要和上一篇一样配置对应的访问master节点的密码

架构如下

我们需要配置三个sentinel的配置文件

bind 0.0.0.0
daemonize yes
protected-mode no
port 26380
logfile "/myredis/sentinel26380.log"
pidfile /var/run/redis-sentinel26380.pid
dir "/myredis"
sentinel monitor mymaster 192.168.111.169 6379 2
sentinel auth-pass mymaster 111111

对应配置即可

注意最后两行的含义

需要配置master的名称 ip 端口 法定票数

这里的法定票数就是多少个哨兵认为master挂了就真的挂了

这里有两个概念

主观下线:一个节点在默认超时时间内(30s)没有感受到master的存在

客观下线:超过法定票数的哨兵都这样认为master挂了

然后使用这样的方式可以成功启动哨兵集群

使用ps -ef来查看对应的哨兵服务是否成功启动

后面我们可以尝试手动断开原来的master节点

我们会发现redis会自动选举新的master节点

对应如何选举的咱们下面慢慢说 

注:原来的master节点即使回归之后,也只能当小弟了,不会出现对应的master冲突

两个小错误

可能刚刚断开连接还没完全恢复,是正常的异常警告

不影响后续的操作

注意这里重新选举之后新的sentinel文件也会进行对应的配置 

对应的redis配置文件也会进行对应的动态更新

对应的从节点会将对应的主节点进行对应的配置

也会进行对应的增量更新

那么选举节点的原理是什么样的呢?

选举兵王

首先我们使用有三个哨兵节点的

三个哨兵节点首先会使用raft算法进行选举一个哨兵之王(leader)

然后由哨兵节点去进行操作对应的redis节点

raft算法

本质上还是一个先到先得的原则

假设现在是abc三个节点

a向bc发生对应的申请

同理b也是发送申请

c也是同理

a先接受到谁的申请就把自己的票投送给谁

投票最多的则作为兵王

选举master

这里我们所有的master的对应的操作是由兵王来操作的

我们按照三个评判标准来进行评价

这三个评判标准的优先级和文章顺序一样

1.根据权限大小

在redis配置文件设置的权限大小

默认是100 可以手动配置

2.偏移量

我们知道每个节点的网络情况不同

slave节点可能复制的量不同

复制量大的优先

3.根据runid

runid根据字典序  小的优先

选举出来之后由leader哨兵来进行对应的先让选出来的slave进行一个

slaveof no one 

在对其他的slave节点进行对应的

slaveof ip port操作

让其他节点成为自己的小弟

注意这里的源master节点也被加在小弟列表中了

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

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

相关文章

yolov系列

学习一个深度学习网络,就看三点,1. 网络架构 2.输入输出 3.损失函数 yolov1 2015年诞生的YOLOv1创造性地使用端到端结构完成了物体检测任务,把检测问题转换成了回归问题,直接预测物体的类别和位置。 每个grid有30维,…

修改了vue3 <script setup>留言板

Лунная ночь <template><button class"edit_view_checkbox"><input type"checkbox" v-model"editshowInput" value"编辑" /></button><div class"editshowInput" v-if"editshowI…

Spring MVC+mybatis 项目入门:旅游网(二) dispatcher与controller与Spring MVC

个人博客&#xff1a;Spring MVCmybatis 项目入门:旅游网&#xff08;二&#xff09;dispatcher与controller与Spring MVC | iwtss blog 先看这个&#xff01; 这是18年的文章&#xff0c;回收站里恢复的&#xff0c;现阶段看基本是没有参考意义的&#xff0c;技术老旧脱离时代…

若依ruoyi-vue element-ui 横向滚动条 动态横向滚动条

动态横向滚动条 因为每次横向滑动都要到底部&#xff0c;引入插件 https://github.com/mizuka-wu/el-table-horizontal-scroll //动态横向滚动条移入样式 .el-table-horizontal-scrollbar :hover{//高度 变大10%transform: scaleY(1.5) translateY(-10%);//百分之八十亮度&a…

【Spring-01】BeanFactory和ApplicationContext

【Spring-01】BeanFactory和ApplicationContext 1. 容器接口1.1 什么是 BeanFactory1.2 BeanFactory 能做什么&#xff1f; 1. 容器接口 以 SpringBoot 的启动类为例&#xff1a; /*** BeanFactory 与 ApplicationContext的区别*/ SpringBootApplication public class Spring…

Grafana详解

目录 ​编辑 一、Grafana的主要特点 二、Grafana的基本功能 三、Grafana的使用方法 Grafana是一款开源的数据可视化工具&#xff0c;主要用于大规模指标数据的可视化展现。下面将详细介绍Grafana的特点、功能以及基本使用方法。 一、Grafana的主要特点 跨平台性&#xff…

牛客ONT45 距离是K的二叉树节点【中等 宽度优先遍历 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/e280b9b5aabd42c9b36831e522485622 思路 图&#xff0c;队列 构件图&#xff0c;直接从target出发&#xff0c;扩展到第k层就是答案Java代码 import java.util.*;/** public class TreeNode {* int val 0;* …

vue3+vite解决项目打包后本地图片等资源找不到的问题

1.在vite.config.js里面做如下配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, // 打包的静态资源引用路径plugins: [vue()], // 放插件用的resolve: {alias: {: /src // 配置/提示符}}, })上述配置主要就是…

[IMX6ULL驱动开发]-Linux对中断的处理(二)

上一篇文章中&#xff0c;引入了Linux对于中断的一些简略流程以及中断抽象为具体实际形象。此文章主要是继续加深对Linux对中断的处理流程以及一些相应的数据结构。 目录 Linux对中断的扩展&#xff1a;硬件中断、软件中断 多中断处理 中断上下部处理流程 发生中断A&#…

SpringBoot整合SpringSecurit,实现ajax的登录、退出、权限校验

1、本文章中SpringBoot整合SpringSecurity&#xff0c;只是基于session方式&#xff0c;并且没有使用到redis。 2、登录、登出都是通过ajax的方式进行。 项目目录&#xff1a; 1、pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xm…

FastReport 主子表关系

代码中只需要绑定主表的数据就可以&#xff0c;子表的数据会通过报表中的关连关系自动到数据库中带出。 using CloudSaaS.DB.Handler; using CloudSaaS.Model; using CloudSaaS.DAL; using FastReport; using FastReport.Web; using System; using System.Collections.Generic;…

(2020|ICML PMLR,线性 Transformer,核函数,RNN)Transformer 是 RNN

Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention 公众号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 线性 Transformers 3.1. Transformer 3.2.…

2023、2024国赛web复现wp

2023 Unzip 类型&#xff1a;任意文件上传漏洞 主要知识点&#xff1a;软链接 随便上传一个一句话木马文件&#xff0c;得到一串php代码 根据代码上传zip文件发现进入后还是此页面 代码审计&#xff1a; <?php error_reporting(0); highlight_file(__FILE__);$finfo fin…

Stable Diffusion【写实模型】:逼真,逼真,超级逼真的国产超写实摄影大模型万享XL

今天和大家分享的是一个国产万享系列中使用量最高的大模型:万享XL_超写实摄影&#xff0c;顾名思义&#xff0c;该大模型主要是面向写实摄影&#xff0c;一方面生成的图片人物皮肤纹理细节超级逼真&#xff0c;另一方面对于光影效果的处理也非常到位。对于万享XL超写实摄影大模…

揭秘Tensor Core黑科技:如何让AI计算速度飞跃

揭秘 Tensor Core 底层&#xff1a;如何让AI计算速度飞跃 Tensor Core&#xff0c;加速深度学习计算的利器&#xff0c;专用于高效执行深度神经网络中的矩阵乘法和卷积运算&#xff0c;提升计算效率。 Tensor Core凭借混合精度计算与张量核心操作&#xff0c;大幅加速深度学习…

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2

参数高效微调PEFT(二)快速入门P-Tuning、P-Tuning V2 参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 今天&#xff0c;我们继续了解下来自清华大学发布的两种参数高效微调方法P-Tuning和P-Tuning v2。可以简单的将P-Tuning是认为针对Prompt Tuning的改进…

零基础小白本地部署大疆上云api(个人记录供参考)

文章目录 运行前准备前后端项目运行1.前端项目&#xff1a; 后端项目运行必须先依靠emqx运行必须先依靠redis运行修改后端项目的application.yml文件 运行前准备 1.保证电脑又node.js环境&#xff0c;可以正常使用npm 2.Java的jdk必须是11及以上版本否则无效 3.下载好emqx,red…

《java数据结构》--队列详解

一.认识队列&#x1f431; 初识队列&#x1f638; 队列和栈类似都对数据的存取有着严格的要求&#xff0c;不同的是栈遵循先进后出的原则&#xff0c;而队列遵循先进先出的原则&#xff0c;栈是只有一端可以存取&#xff0c;队列是一端存&#xff0c;一端取。这里我来画一个图…

鸿蒙ArkUI-X跨语言调用说明:【平台桥接开发指南(Android)BridgePlugin】

BridgePlugin (平台桥接) 本模块提供ArkUI端和Android平台端消息通信的功能&#xff0c;包括数据传输、方法调用和事件调用。需配套ArkUI端API使用&#xff0c;ArkUI侧具体用法请参考[Bridge API]。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-…

“2024 亚马逊云科技中国峰会,挑战俱乐部 Hands On 动手实验课程正在直播中,点击链接畅享生成式AI建构之旅,赢心动好礼

只看不过瘾&#xff1f;别急&#xff01;我们为您准备了【生成式AI助手 Amazon Q 初体验】动手实验&#xff0c;一款生成式人工智能 (AI) 支持的对话助理&#xff0c;可以帮助您理解、构建、扩展和操作 Amazon 应用程序&#xff0c;您可以询问有关 Amazon 架构、最佳实践、文档…