Redis7基础篇(七)

news/2024/10/18 6:02:13/

redis%E5%93%A8%E5%85%B5%EF%BC%88sentinel%EF%BC%89">redis哨兵(sentinel)

目录

redis%E5%93%A8%E5%85%B5%EF%BC%88sentinel%EF%BC%89-toc" style="margin-left:0px;">redis哨兵(sentinel)

是什么

能干吗

案例演示

架构

案例步骤

出现的问题

哨兵的运行流程和选举原理

哨兵的使用建议​编辑


是什么

在之前的复制中我们了解到 主机shutdown之后 从机就会一直等待  这样就会导致阻塞

黑色的就是哨兵

能干吗

案例演示

架构

为什么是奇数个哨兵?

因为奇数个哨兵好投票

案例步骤

首先哨兵他是不存放内容的 只是起到一个吹哨人的作用 所以他的配置文件和redis的不同 并且三个哨兵对应三个配置文件

我们下载的redis安装包里面有原装的sentinel.conf

将这个文件拷贝到我们的myredis目录下

哨兵配置文件里面的参数和redis很相似

重点参数

quorum就是法定投票数 这个quorum会引出 什么是客观投票 什么是主观投票

启动哨兵模式

默认是26379端口号

把下面的内容粘贴进去 ip 端口 法定的票数是2个

给6379配置密码

6380和5381的redis配置文件下都有这行代码

80和81配置一样 因为都是要绑定6379

启动集群

原有的master挂了

打开26379的日志

26380的日志文件

查看26379的配置文件

26380的配置文件

手动关闭6379

剩下两个从机得出来的结果 刚开始读取不到结果 但是过一会就能读取到结果

6380

6381

6379的日志

他已经变成小弟了

出现的问题

6379的配置文件被哨兵加内容了 之前ignore那个才是最后一行

6381的配置文件下面也配置了一些东西

6381之前配置的这个replicaof也被拿掉了

哨兵的运行流程和选举原理

选一个哨兵做兵王 去做slaver到master这件事情

选出兵王来了

兵王去做master的转换

先看优先级 再看偏移量 再看runid谁小

复制偏移量可以这样理解

假如原先的master写了十个数据 但是slave1由于网络抖动 只有9条 而slave2有十条记录

leader肯定选2

哨兵的使用建议

那意思就是数据写入有窗口期,所有的从机变成主机也需要时间阿

在master宕机之后 选出新的master需要时间 这个时间段 会丢失数据


http://www.ppmy.cn/news/1512383.html

相关文章

vue3中实现给pdf加盖公章(手动拖拽公章确认位置)

开发项目时,碰到了一个这样的需求:需要前端从服务器获取到一个pdf文件,然后用户通过手动拖拽公章的方式确认公章应该加盖的位置,然后将位置信息传递给服务器。代码并不是非常完美,仅供大家参考。 引用的两个包版本为 …

C的动态内存管理 free()和malloc()的简单实现——free()根据内存地址便知释放内存的空间大小(原理详解)

malloc与free malloc 分配的内存是未初始化的,其中的字节内容是不确定的(可能是随机值)。 如果内存分配失败,malloc 返回一个空指针 NULL,可以通过检查返回值来判断是否分配成功。 void* malloc (size_t size); cal…

一个手机到手机之间通话经过了哪些设备

来源:https://www.bilibili.com/video/BV1ic411F7mM/?spm_id_from333.880.my_history.page.click&vd_source6c5d3cd50fc7fa8732bdfb760a055839 一个手机通话需要经过下面三个网络 类别接入网(Access Network)承载网(Transp…

关于路由和负载均衡

路由 想象你在一个大城市里,想去一个从未去过的新餐馆。你会怎么找到那里?你可能会用手机地图,对吧?地图告诉你从你现在的位置出发,应该先左转,再右转,走哪条街,过几个路口&#xf…

【并发编程】什么是CAS?Java是如何实现CAS操作的?

目录 一.什么是CAS? 二.Java中如何实现CAS操作? 一.什么是CAS? 在Java并发编程中,CAS 代表 "Compare-And-Swap"(交换并比较),这是一种用于实现无锁编程的原子操作。CAS操作通常用于…

【IDEA】idea配置服务器没有tomcat

IntelliJ IDEA 本身并不包含 Tomcat 服务器。 详细解释: IntelliJ IDEA 是一个集成开发环境 (IDE),为软件开发提供各种工具和功能。它专注于代码编辑、调试、代码重构和版本控制等任务。Tomcat 是一个 Java Servlet 容器和 Web 服务器,用于…

已解决:java.lang.ClassNotFoundException: com.mongodb.test.test 异常的正确解决方法,亲测有效!!!

1. 问题描述 java.lang.ClassNotFoundException 是 Java 程序在运行时找不到指定类时抛出的异常。在这类错误中,错误信息 com.mongodb.test.test 指示 Java 虚拟机 (JVM) 无法找到该类。 通常,这种错误发生在以下情况: 类路径配置错误&…

银行总分支文件分发系统:在安全与效率之间找到平衡

银行的组织结构通常根据其规模、业务范围和地域分布而有所不同,但一般会包括以下几个层级:总行-区域总部或分行-分行-支行-业务中心或服务中心-国际分支机构-附属机构或子公司。 在日常中,存在总分支文件分发的业务场景,文件类型通…