了解Redis集群概念,集群如何选举主节点

news2024/11/26 9:51:31

请给胡广一个免费的三连吗?感谢!

1. Redis集群

1.1 集群概念

Redis主从架构和Redis集群架构是两种不同的概念,大家刚接触Redis时经常弄混淆。胡广给大家贴下Redis官网对两者的解释。

(1)Redis主从架构

Redis主从实现了有一个易于使用和配置的领导者跟随者复制,它允许副本 Redis 实例成为主实例的精确副本。

(2)Redis集群架构

Redis 集群将数据自动分片到多个 Redis 节点,Redis 集群还在分区期间提供一定程度的可用性,当某些节点发生故障或无法通信时,Redis集群能够继续运行。

它们两者都是Redis高可用的解决方案,但偏向点不同。Redis主从对数据的完整性更看重,Redis主从节点都保存了完整的一套数据库状态。

而Redis集群则对抗压能力更看重,整个集群的数据库整合起来才是一个完整的数据库。

在功能性上它们也有不同,Redis主从有哨兵,而Redis集群有分片。我们要看业务选择不同的Redis方案,当然,Redis集群还可以搭配Redis主从一起使用,我们可以在某一个集群节点上配置一套主从模型。

如果要6002、6003节点添加到6001节点的Redis集群里,我们可以使用以下命令。

127.0.0.1:6001> CLUSTER MEET 127.0.0.1 6002
OK
127.0.0.1:6001> CLUSTER MEET 127.0.0.1 6003
OK

1.2 集群分片

大家要记住Redis集群一个很重要的知识点,那就是分片。

Redis集群通过分片的方式来保存数据库中的键值对,Redis集群把整个数据库分为16384个槽,而集群中的每个节点可以处理这里面的0个或最多16384个槽。

假如南友们在公司里配置了一个包含 3 个节点的集群,那么这3个节点的槽分配会是这样的:

  • 节点 A 包含从 0 到 5500 的哈希槽。
  • 节点 B 包含从 5501 到 11000 的哈希槽。
  • 节点 C 包含从 11001 到 16383 的哈希槽。

那这样分片有什么作用?

大家想一想,有了分片,我们对某一个键值对的增删改查就会在三个集群节点中的其中一个进行,这样对Redis的各种操作也就负载均衡地下落到各个集群的节点中。

1.3 重新分片

Redis集群甚至可以在线上环境直接执行重新分片功能,分片是不是很灵活呢?胡广给Redis点赞。

Redis官网对分片是这么解释的。

Moving hash slots from a node to another does not require stopping any operations; therefore, adding and removing nodes, or changing the percentage of hash slots held by a node, requires no downtime.

将哈希槽从一个节点移动到另一个节点不需要停止任何操作;因此,添加和删除节点,或更改节点持有的哈希槽百分比,不需要停机。

Redis集群重新分片可以将任意数量已指派给某个节点的槽改为指派给另一个节点,而相关槽所属的键值对也会从源节点被移动到目标节点。重新分片操作也不需要集群节点下线,源节点和目标节点也都可以继续处理命令请求。

要是小伙伴遇到热点数据都精确命中了Redis集群的某一个节点,赶快在线上环境紧急重新分片,把相关热点槽指派给其他节点处理,这也是一个不错的选择。

2. 集群的主从模型

2.1 主从模型

还记得上文胡广提到过可以给Redis集群的某一个节点配置主从模型吗?

Redis集群把键值都分散在多个集群节点中,这也有缺点。例如某一个节点失效了,那这个节点里所有槽的键值对也都无法访问了。Redis官方当然也知道,主从模型可以让集群节点有1~N个副本节点。

像上文的Redis集群的A、B、C三个节点,主从模型可以为这每一个主节点添加一个副本节点。这样的话集群就变成了由A、B、C、A1、B1、C1组成,例如当A节点失效了,那它的副本节点A1就会提升为新的主节点。

主从模型也有另外的好处,我们可以让主节点用于处理槽,而副本节点用来分担读的压力

为集群B节点添加B1、B2副本节点

2.2 主节点选举

Redis集群的主从模型选举主节点和Redis哨兵选举出主节点非常相似,但大家不要搞混了,Redis集群中并没有哨兵的概念。

主从模型选举主节点和哨兵选举领头哨兵一样是先到先得,而且它们投票的对象是集群中的其他主节点

选举的流程如下。

(1)当从节点发现主节点进入下线状态时,会广播一条CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST消息,要求其他集群主节点向改从节点进行投票。

(2)投票遵循先到先得的规则,集群主节点会投票给第一个发送选举信息的该从节点,返回一条CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息。

(3)如果集群主节点的个数是N,当某个从节点收到大于等于N / 2 + 1张支持票时,代表该从节点获胜,该从节点也将成为新的主节点。

 你好,我是胡广。 致力于为帮助兄弟们的学习方式、面试困难、入职经验少走弯路而写博客 🌹🌹🌹 坚持每天两篇高质量文章输出,加油!!!🤩

 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 。想看更多 那就点个关注     吧 我会尽力带来有趣的内容 。

 😎感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以      给我留言咨询,希望帮助更多的人

更多专栏:
📊 Java设计模式宝典:从入门到精通(持续更新)

📝 Java基础知识:GoGoGo(持续更新)

⚽ Java面试宝典:从入门到精通(持续更新)

🌟 程序员的那些事~(乐一乐)

🤩 Redis知识、及面试(持续更新)

🚀 Kafka知识文章专栏(持续更新)

🎨 Nginx知识讲解专栏(持续更新)

📡 未完待续。。。

🎯 未完待续。。。

🔍 未完待续。。。

感谢订阅专栏 三连文章

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

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

相关文章

SpringBatch

Spring Batch Job instance(作业实例) 当作业运行时,会创建一个Job Instance(作业实例),它代表作业的一次逻辑运行,可通过作业名称与作业标识参数进行区分。 比如一个业务需求: 每天定期数据同步,作业名称-daily-sync-…

基于SpringBoot+Vue的考务管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的考务管理…

vue 使用jszip,file-saver下载压缩包,自定义文件夹名,文件名打包下载为zip压缩包文件,全局封装公共方法使用。

记录一下后台管理全局封装一个压缩包下载方法,文件夹名自定义,文件名自定义,压缩包名自定义。 安装必要的库 npm install jszip npm install file-saver自定义一个公共方法全局注入 页面使用 /** 下载按钮操作 */handleDownload() {const i…

JAVA智能管理高效运营自营商城系统

智能管理,高效运营 —— 自营商城系统的魅力揭秘🚀 📈 开篇:告别繁琐,拥抱智能管理 你还在为商城运营的繁琐流程头疼吗?🤯 还在为数据分析的复杂性而烦恼吗?🤔 那就让我…

Python设计模式实战:开启软件设计的精进之旅

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

企业工商信息查询-企业工商信息查询接口-企业工商信息api

1、接口介绍 通过企业名称/社会统一信用代码/工商注册号三者其中之一快速查询全国企业工商数据,可查得企业工商基本信息。如:企业工商基本信息,企业法人,经营状态,注册资本,以及股东,高管&#…

[Linux入门]---进程等待

文章目录 1.进程等待必要性1.1什么是进程等待?**1.2为什么需要进程等待? 2.进程等待的方法2.1wait方法2.2waitpid方法2.2.1获取子进程status2.2.2options选项,父进程等待的三种方式 1.进程等待必要性 1.1什么是进程等待?** 通过系统调用wait/waitpid&…

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中的应用前景

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中具有广泛的应用前景。以下是关于这一主题的简要综述: 文章目录 结合LSTM和UKF的背景结合LSTM和UKF的优势应用实例研究现状MATLAB代码示例结合LSTM和UKF的背景 长短期记忆网络(LSTM)是一…

hadoop分布式搭建

hadoop的分布式搭建步骤: 第一步: 比如准备三台虚拟机,分别命名为master、node1、node2,并且确保都配置了java环境 ,都关闭了防火墙,都设置了静态的IP地址,然后三台虚拟机的hosts文件都互相映射&#xff0…

atcoder abc370(dp,基环树/森林,倍增)

A 代码&#xff1a; #include <bits/stdc.h>using namespace std;int main() {int a, b;cin >> a >> b;if(a 1 && b 0) cout << "Yes" << endl;else if(a 0 && b 1) cout << "No" << en…

【Centos】Centos系统换yum源

【Centos】Linux&#xff0c;Centos系统换yum源 1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak/etc/yum.repos.d/CentOS-Base.repo 是yum的配置文件 /etc/yum.repos.d/CentOS-Base.repo.bak 是我们备份的配置文件 2、下载yum源 这里…

这个开源的AI证件照项目又火了!有人靠它日入300+

今天在知识星球里看到一个球友靠一个AI证件照的项目赚到了第一桶金&#xff0c;看了看项目&#xff0c;还不错。整理下来分享给大家玩玩。 神器名叫HivisionIDPhotos&#xff0c;最近几天一直挂在GitHub热榜上&#xff0c;目前已狂揽3.2K星标。 除了能换背景&#xff0c;它还支…

你绝对想不到,ComfyUI竟然能这样转换线条图!

前言 使用ComfyUI将图像转为线条图&#xff1a;详细教程 在这个数码时代&#xff0c;图像处理技术已经像空气一样渗透进了我们的日常生活。今天&#xff0c;我想和大家分享一个既简单又高效的小妙招——用ComfyUI把图片变成线条图。 不管你是设计师、艺术家&#xff0c;还是…

深入掌握大模型精髓:《实战AI大模型》带你全面理解大模型开发!

今天&#xff0c;人工智能技术的快速发展和广泛应用已经引起了大众的关注和兴趣&#xff0c;它不仅成为技术发展的核心驱动力&#xff0c;更是推动着社会生活的全方位变革。特别是作为AI重要分支的深度学习&#xff0c;通过不断刷新的表现力已引领并定义了一场科技革命。大型深…

opencv羊群计数,动态目标检测跟踪

OpenCV&#xff08;开源计算机视觉库&#xff09;是一个功能强大的计算机视觉和图像处理库&#xff0c;广泛应用于各种视觉任务中&#xff0c;包括但不限于目标检测与跟踪。如果你正在考虑一个基于OpenCV的羊群计数项目&#xff0c;那么下面是对这样一个项目的概述&#xff1a;…

【动态规划】子序列问题二(数组中不连续的一段)

子序列问题二 1.最长定差子序列2.最长的斐波那契子序列的长度3.最长等差数列4.等差数列划分 II - 子序列 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&am…

易基因:Adv Sci:ACE等揭示产前不良环境暴露通过DNA羟甲基化变化介导子代自闭症|国人佳作

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 自闭症谱系障碍&#xff08;Autism spectrum disorder&#xff0c;ASD&#xff09;是一种神经发育障碍&#xff0c;以社交沟通障碍和刻板行为为主要特征。许多研究证明&#xff0c;妊娠期…

2024上半年上汽收入2770多亿,为啥没长城900多亿赚得多?

【科技明说 &#xff5c; 车评头条】 看了上汽集团和长城汽车两家的最新H1财报后&#xff0c;你是不是发现了点什么&#xff1f; 上汽集团披露2024年半年报。公司上半年实现合并营业收入2770.86亿元&#xff0c;同比下降12.43%&#xff1b;净利润66.28亿元&#xff0c;同比下…

vb.net发送邮件:如何高效地实现邮件发送?

vb.net发送邮件怎么配置服务器&#xff1f;怎么用vb.net发邮件&#xff1f; 如何高效地实现vb.net发送邮件&#xff0c;确保邮件能够快速、稳定地送达&#xff0c;是许多开发者面临的挑战。AokSend将深入探讨vb.net发送邮件的最佳实践&#xff0c;帮助您提升邮件发送的效率和可…

投屏开发调试技能-pcm数据转wav格式文件源码实战分享

背景 在学习投屏相关音视频开发时候&#xff0c;经常验证一些声音卡顿问题时候&#xff0c;需要对音频数据可能需要保存到本地&#xff0c;一般可能是pcm格式的数据&#xff0c;但是pcm格式的数据是不可以用音乐播放器直接进行播放&#xff0c;需要专门的工具&#xff0c;而且…