Redis专题----2

一.主从复制

       从服务器连接主服务器,发送SYNC命令.主服务器接收到SYNC命令后,执行命令生成RDB文件并使用缓冲区记录此后执行的所有写命令.主服务器执行完后,向所有的从服务器发送快照文件,并在发送期间继续记录被执行的写命令.从服务器收到快照文件后丢弃所有的旧数据,载入收到的快照.主服务器快照发送完毕后开始向从服务器发送缓冲区的写命令.

      从服务器完成对快照的载入,开始接收请求命令,并执行来自主服务器缓冲区的写命令.主服务器每执行一个写命令就会向从服务器发送相同的写命令.

优点:支持主从复制,主机自动将数据同步到从机,可以进行读写分离.
缺点:Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换到前端IP才能恢复.

二.主从如何做到故障自动切换?

      主节点挂了 ,从节点是无法自动升级为主节点的,这个过程需要人工处理,在此期间 Redis 无法对外提供写操作。此时,Redis 哨兵机制就登场了,哨兵在发现主节点出现故障时,由哨兵自动完成故障发现和故障转移,并通知给应用方,从而实现高可用性。

        Redis 在 2.8 版本以后提供的哨兵(Sentinel)机制,它的作用是实现主从节点故障转移。它会监测主节点是否存活,如果发现主节点挂了,它就会选举一个从节点切换为主节点,并且把新主节点的相关信息通知给从节点和客户端。

       哨兵一般是以集群的方式部署,至少需要 3 个哨兵节点,哨兵集群主要负责三件事情:监控、选主、通知。哨兵节点通过 Redis 的发布者/订阅者机制,哨兵之间可以相互感知,相互连接,然后组成哨兵集群,同时哨兵又通过 INFO 命令,在主节点里获得了所有从节点连接信息,于是就能和从节点建立连接,并进行监控了。

三.哨兵机制

       每个哨兵以每秒钟一次的频率向整个集群中的主服务器,从服务器及进程发送ping命令.如果一个实例距离最后一次有效回复ping,命令的时间超过指定值.这个实例会被哨兵标记为主观下线.如果一个主服务器被标记为主观下线,则哨兵进程以每秒一次的频率确认主服务器的确进入了主观下线状态.当有足够数量的哨兵在指定时间内确认主服务器进入了主观下线状态.则主服务器会被标记为客观下线.若没有足够数量的哨兵同意主服务器下线,主服务器客观下线的状态就会被移除.当主服务器向哨兵发送PING命令得到有效回复,主服务器主管下线状态就会被移除.

优点:哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有.主从可以自动切换,系统更加健壮,可用性更高.
缺点:redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂.

四.数据库和缓存如何保证一致性?

在更新数据库的同时,调用删除缓存数据.这么做或有耦合过高及调用失败的情况.可以使用「消息队列来重试缓存的删除」,或者「订阅 MySQL binlog 再操作缓存」,这两种方法有一个共同的特点,都是采用异步操作缓存。

五.为什么要出现集群?

       redis的哨兵模式基本已经实现高可用,读写分离,但这种模式下每台redis都存储相同的数据,很浪费内存.redis集群实现分布式存储,每台redis节点上存储不同的内容.redis集群采用无中心结构:所有节点彼此互连PING-PONG机制,内部使用二进制协议优化传输速度和带宽.节点fail是通过集群中超过半数的节点检测失效时才生效.

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

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

相关文章

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻,视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输,但受到地域限制、布线成本高等因素的影响,其应用范围和效果受到一定限制。而卫星通讯传输…

CentOS 7 下gdb任意版本的升级

文章目录 前言查看gdb版本升级步骤 小结 前言 在做项目的过程中,遇到了难缠的bug,使用gdb调试的时候,bt调用堆栈看的一震头疼,于是就想起把gdb升级一下 当前环境:Centos7,gdb:7.6 稍微好看了那…

提醒:网站使用微软雅黑字体的三种方式,两种侵权,一种不侵权。

大家都知道微软雅黑是windows系统的默认字体,但是不知道微软雅黑的版权归属方正字体,而且方正字体仅仅授权了微软在windows系统中使用该字体,脱离了windows使用,那是极易中招的,网页字体使用是前端开发的工作之一&…

Makefile-快速掌握

引用 本文完全参照大佬的文档写的,写这篇文章只是为了梳理一下知识 https://github.com/marmotedu/geekbang-go/blob/master/makefile/Makefile%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md 介绍 Makefile是一个工程文件的编译规则,描述了整个工程的编译…

Netflix 机器学习科学家的提示词优化经验分享

编者按: 如何充分发挥大模型的潜能,用好大模型,关键在于如何优化向它们发送的提示词(prompt),是为提示词工程(prompt engineering)。 本文Netflix 机器学习科学家Cameron R. Wolfe的…

SwiGLU激活函数与GLU门控线性单元原理解析

前言 SwiGLU激活函数在PaLM,LLaMA等大模型中有广泛应用,在大部分测评中相较于Transformer FFN中所使用的ReLU函数都有提升。本篇先介绍LLaMA中SwiGLU的实现形式,再追溯到GLU门控线性单元,以及介绍GLU的变种,Swish激活…

分布式技术导论 — 探索分析从起源到现今的巅峰之旅(逻辑架构)

探索分析从起源到现今的巅峰之旅 背景介绍技术系列 逻辑架构连接处理层数据缓存层SQL处理层存储引擎逻辑层次的分工 模块执行连接处理层初始化模块核心API模块网络交互模块Client&Server 交互协议模块用户模块案例 访问控制模块案例 连接管理、连接线程和线程管理连接管理模…

学习资料分析

学习资料分析 速算运算 √截位直除分数比较等比修正其他速算方法基期与现期基本概念求基期求现期增长率与增长量增长相关统计术语求一般增长率比较一般增长率增长量比重比重相关公式求比重平均数倍数间隔增长乘积增长率年增长率混合增长率资料分析:主要测查报考者对文字、数字…

UML与设计模式

1、关联关系 关联关系用于描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联关系是一种静态关系,通常与运行状态无关,而是由“常识”、“规则”、“法律”等因素决定的,因此关联关系是一种强关联的关…

Web前端开发模板:创新实践与深度解析

Web前端开发模板:创新实践与深度解析 在数字化时代的浪潮中,Web前端开发作为构建用户界面的关键环节,其重要性日益凸显。一个优秀的Web前端模板不仅能够提升用户体验,还能有效推动项目的快速开发与部署。本文将从四个方面、五个方…

媒体查询的屏幕尺寸范围

在响应式网站设计中,媒体查询通常用于根据不同的屏幕尺寸应用不同的样式规则。以下是一些常见的屏幕尺寸范围,这些范围可以用于定义大屏幕、中屏幕、小屏幕和超小屏幕设备的样式。这些范围广泛参考了 Bootstrap 框架的断点,因为它是一个广泛使…

层出不穷的大模型产品:使用体验、倾向选择及未来展望

✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点赞、关注、收藏、评论,是对我最大…

哪些因素驱动新零售发展?新零售与传统零售、电子商务区别在哪?

零售业正经历着一场前所未有的变革,这场变革由多种因素驱动,涉及技术、消费习惯以及商业模式的全面升级。我们称之为”新零售”,它不仅仅是一个概念,更是零售业未来发展的方向。新零售的兴起,标志着零售行业正在迈向一…

Spring boot 使用AbstractRoutingDataSource实现数据源动态切换

目录 一、AbstractRoutingDataSource 二、具体实现 1、pom.xml 2、新建UserMapper 3、在spring boot 启动类上添加扫描mapper注解 4、在配置文件 application.properties 中添加多个(我这里是两个)数据源的配置信息 5、集成动态数据源模块 5.1、新建注解 CurDataSource…

186.二叉树:二叉搜索树中的插入操作(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

pytest + yaml 框架 -61.jenkins+allure+钉钉通知添加测试结果

前言 上一篇pytest + yaml 框架 -60.git+jenkins+allure+钉钉通知反馈 已经实现测试结果用钉钉通知。 本篇继续在钉钉通知里添加测试的汇总结果,此功能在pytest-yaml-yoyo v1.5.2版本上实现。 Environment Injector 插件 在运行完用例后会生成一个summary.json 文件,汇总…

护眼台灯哪个品牌更好?五款市面主流的护眼台灯款式分享

近年来,护眼台灯的研发和创新不断推进,一些台灯配备了智能化功能,如定时开关机、自动调节光线等,使孩子们能够更好地控制用眼时间和光线环境。护眼台灯哪个品牌更好?一些高端的护眼台灯还采用了纳米光滤镜技术&#xf…

誉天5月红帽战报:恭喜14名学员通过RHCE认证,通过率87.5%!

红帽认证是全球公认的Linux权威认证之一,对于Linux从业者来说具有很高的价值和认可度。旨在评估考生在Linux系统管理和应用方面的专业知识和技能。红帽考试是Linux从业者提升自身技能水平和职业竞争力的重要途径之一。 5月份,誉天14名学员通过了RHCE认证…

Python基础教程(十九):网络编程

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

【深度学习】基于注意力机制的多实例学习(MIL)图像分类

1. 引言 1.1.研究背景 在图像分类任务中,我们通常持有一个直观的假设,即每张图像都可以清晰无误地归属于一个特定的类别标签。然而,在医学成像领域,特别是在计算病理学等复杂的应用中,情况则有所不同。在这些情况下&…