Redis(哨兵模式)

哨兵模式的定义:

是Redis的一种高可用解决方案,通过运行多个Redis实例来监控主从Redis实例的状态,当主实例出现故障时,哨兵会自动选举一个从实例作为新的主实例,从而保证系统的高可用性。哨兵模式可以监控多个主从Redis实例,并在主实例故障时自动进行故障转移,同时还可以对故障进行报警和通知。这种模式可以有效地提高Redis系统的可用性和稳定性。

主从复制中的缺点:

主从复制中主节点宕机了,还需要手工把另一台从节点提升为主节点,这样就不能实现真正的高可用。

上篇文章实现了一主两从的Redis集群,实现了一定程度上的高可用,相比于一个单节点的Redis有了很大的提升。

上篇文章的链接:http://t.csdnimg.cn/51cOU

实现故障的自动转移就是哨兵模式干的事。哨兵会以一个独立的进程运行再Redis集群中。用来监控Redis中的各个节点是否运行正常。

哨兵主要用来执行以下几个功能:

1.  监控:通过不断的发送命令来检查Redis节点是否正常。

2.  通知:如果发现某个节点出现了问题,那么哨兵就会通过发布订阅模式来通知其他节点。

3.  自动故障转移: 当主节点不能正常工作的时候,哨兵会开始一个自动故障转移的操作。他会将一个从节点升级为新的主节点,然后将其他从节点指向新的主节点 。

配置哨兵模式:

首先需要在Redis集群中添加一个哨兵节点,可以使用:

redis -sentinel

来启动哨兵节点。然后创建一个sentinel.cof配置文件。

 

 在配置文件中添加一条语句。monitor后面的是主节点的名称,可以自己定义,最后那个1代表只需要一个哨兵节点同意就可以进行故障转移了。

接下来就可以启动哨兵节点了:

redis-sentinel sentinel.conf

通过上述语句启动一个哨兵节点。 

启动完成之后就可以看到一个运行在26379端口的哨兵模式。

然后将6379端口的服务端终止(ctrl + c或者将终端×掉),来模拟主节点宕机的情况。 

然后就会发现现在新的主节点的端口为6381。

 再来查看6381这个端口的节点,发现他现在是主节点。

 

6380依然是从节点,他的主节点是6381。

最后有一点需要注意的是:

哨兵本身也是一个进程,自己也会有单节点故障的问题,所以在一般的生产环境会使用3个哨兵节点来保证高可用。这3个哨兵节点会通过选举的方式来选出一个领导者,然后由领导者来监控其他节点,如果领导者挂了,那么其他哨兵节点会重新选举出一个领导者。这样就可以保证哨兵节点的高可用了。

Redis中多个哨兵节点的选举是自动的。当主节点出现故障或不可达时,哨兵节点会自动进行选举,选举出新的主节点,并通知其他从节点切换到新的主节点上。这样可以保证系统的高可用性和故障恢复能力。哨兵节点之间会相互通信,通过投票来决定新的主节点,并在选举完成后自动更新配置,使得系统可以继续正常工作。

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

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

相关文章

2023亚太杯数学建模竞赛C题详细代码解析建模

C题:The Development Trend of New Energy Electric Vehicles in China中国谈新能源电动汽车的发展趋势 第一问部分: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.prep…

Axios 通过a标签下载文件 跨域下载

<!-- a标签占位 --><a ref"down" ></a>getTest() {this.$axios.request({url: https://cnv13.55.la/download?file_key3695fa9461a0ae59cf3148581e4fe339&handle_typeexcel2pdf,method: get,responseType: blob, // 切记类型 blob}).then(re…

RC4密码(python实现)

def RC4_INIT(key):keylist(key)for i in range(len(key)):key[i]ord(key[i]) #需要将key中的每个字符转换为整数进行异或k[0 for i in range(256)]s[0 for i in range(256)]j0lengthlen(key)for i in range(256):s[i]ik[i]key[i%length] #如果key为123&#xff0c;则实际填充…

实现二叉搜索树的查找、插入和删除功能(思路+图文+代码详解)

文章目录 二叉搜索树一、搜索树1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.性能分析 二叉搜索树 HashMap和HashSet的底层是一个哈希表 TreeMap 和TreeSet底层是一棵搜索树&#xff08;红黑树&#xff09; 涉及到一些搜索查找的场景可以调用Map和Set接口 一、…

Action!录屏工具免费完整版,录屏软件,打开即可解锁最新完整可用版本,支持GPU加速HDR视频录制和播放

一、软件简介 本次带来的录屏工具已升级为【完整版本】&#xff0c;所有功能全部可用。该录屏工具支持GPU硬件加速&#xff0c;可以智能识别主流硬件设备&#xff0c;支持通过GPU进行HDR视频录制和播放进行。视频录制帧率最高支持360FPS&#xff0c;直播视频帧率最高支持60FPS…

Java反射机制

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

RK3399平台开发系列讲解(内核入门篇)ConfigFS 的核心数据结构

🚀返回专栏总目录 文章目录 一、关键数据结构二、config_item 的结构体三、属性和方法沉淀、分享、成长,让自己和他人都能有所收获!😄 📢虚拟文件系统 ConfigFS 是一个特殊的文件系统,旨在提供一种动态配置 Linux 内核和设备的机制。 一、关键数据结构 ConfigFS 的核…

Vue表单的整体处理

在前端的处理中&#xff0c;表单的处理永远是占高比例的。在BOMDOMjs的时候是这样&#xff0c;在Vue的时候也是这样。Vue的表单处理做了特别的优化&#xff0c;如值绑定、数据验证、错误提示、修饰符等。 表单组件的示例&#xff1a; <script setup lang"ts">…

如何用Postman做接口自动化测试?一文5个步骤带你成功实现!

什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试&#xff0c;模拟人去操作软件界面&#xff0c;把人从简单重复的劳动中解放出来 本质是用代码去测试另一段代码&#xff0c;属于一种软件开发工作&#xff0c;已经开发完成的用例…

解决kubernetes中微服务pod之间调用失败报错connection refused的问题

现象&#xff1a; 从这里可以看到是当前服务在调用product service服务是出现了连接拒绝connection refused 走读一下原始代码&#xff1a; 可以看到请求是由FeignClient代理发出的 &#xff0c;但问题在于为什么Feign请求的时候会产生connection refused错误&#xff1f; 上…

Programming Tensor Cores: NATIVE VOLTA TENSOR CORES WITH CUTLASS

PROGRAMMING TENSOR CORES: NATIVE VOLTA TENSOR CORES WITH CUTLASS 源自于 GTC Silicon Valley-2019: cuTENSOR: High-performance Tensor Operations in CUDA&#xff0c;介绍了 CUTLASS 1.3 中基于 Volta Tensor Core 实现高效矩阵乘法计算的策略。主要内容为以下三点&…

Python函数式编程:让你的代码更优雅更简洁

概要 函数式编程&#xff08;Functional Programming&#xff09;是一种编程范式&#xff0c;它将计算视为函数的求值&#xff0c;并且避免使用可变状态和循环。 函数式编程强调的是函数的计算&#xff0c;而不是它的副作用。 在函数式编程中&#xff0c;函数是第一类公民&a…

【Vue3】解决Vue打包后上传服务器 资源路径加载错误

问题&#xff1a; 我这里在打包Vue之后将打包后的dist 上传至服务器站点根目录内子目录 名为 "adminstore" , 但是当我通过域名打开站点后发现 资源加载路径内并没有携带 子目录 "adminstore" 文件名称 错误&#xff1a;http://your website domain/js/app…

Java 开发常用的 Linux 命令汇总(建议收藏)

虽然平时大部分工作都是和Java相关的开发, 但是每天都会接触Linux系统, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行环境中. 自己记忆力不好, 很多有用的Linux命令不能很好的记忆, 现在逐渐总结一下, 以便后续查看. 基本操作 Linux关机,重启 # 关机 shutdown -h n…

面试Java笔试题精选解答

文章目录 热身级别数组中重复的数字思路&#xff1a;使用map或HashSet来遍历一遍就可以找出重复的字符样例解答 用两个栈实现队列思路&#xff1a;Stack1正向进入&#xff0c;队头在栈底&#xff0c;用于进队列操作&#xff1b;Stack2是Stack1倒栈形成&#xff0c;队头在栈顶&a…

学生成绩管理系统(C++实现)

问题描述 实现学生成绩管理系统&#xff1a; 学生信息包括&#xff1a;学号、姓名、性别、年龄、班级等信息。除了包括学生所有信息外&#xff0c;还包括专业、英语、程序设计和高等数学等课程。 设计一程序能够对学生成绩进行管理&#xff0c;应用到继承、抽象类、虚函数、虚…

基于5G+物联网+SaaS+AI的农业大数据综合解决方案:PPT全文44页,附下载

关键词&#xff1a;智慧农业大数据&#xff0c;5G智慧农业&#xff0c;物联网智慧农业&#xff0c;SaaS智慧农业&#xff0c;AI智慧农业&#xff0c;智慧农业大数据平台 一、智慧农业大数据建设背景 1、应对全球人口快速增长带来的粮食生产压力&#xff0c;未来的粮食生产力必…

宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解

新闻摄影技巧 写在最前面摘要 构图与拍摄角度景别人物表情与叙事远景与特写 构图与拍摄角度案例 主体、陪体、前景、背景强调主体利用前景和背景层次感的创造 探索新闻摄影中的构图技巧基本构图技巧构图技巧的应用实例实例分析1. 黄金分割和九宫格2. 三角型构图3. 引导线构图4.…

1)业务平台集成电子签章平台

1.前言 电子签章平台随着企业数字化转型逐步渗透到日常运营项目中&#xff0c;如合同盖章/规章制度发布/法审意见等场景下引入电子章解决盖章需求。 作为特定业务下的统一处理方案&#xff0c;需要在业务管理平台与电子签章平台之间构建一个桥梁&#xff0c;简化电子签章平台…

Spring配置其他注解Spring注解的解析原理

Spring配置其他注解 Primary注解用于标注相同类型的Bean优先被使用权&#xff0c;Primary是Spring 3.0引入的&#xff0c;与Component和Bean一起使用&#xff0c;标注该Bean的优先级更高&#xff0c;则在通过类型获取Bean或通过Autowired根据类型进行注入时&#xff0c;会选用优…