主从、哨兵、集群模式有什么区别 ?

news2024/11/20 13:39:20

目录

1.Redis 多机部署的方式

2.主从、哨兵、集群模式有什么区别

2.1 主从同步

 2.2 哨兵模式

2.3 集群模式


1.Redis 多机部署的方式

Redis 多机部署主要有 3 种方式:

1. 主从同步:主要存储数据的节点叫做主节点(master),其他通过复制主节点数据的副本节点叫做从节点(slave)。在 Redis 中一个主节点可以拥有多个从节点,一个从节点也可以是其他服务器的主节点。

2. 哨兵模式:哨兵模式 Redis Sentinel 是 Redis 的一种运行模式,它专注于对 Redis 实例(主,从)运行状态的监控,并能够在主节点发生故障时通过一系列的机制选举一个从节点作为新的主节点,以及主从切换,实现故障转移,确保整个 Redis 系统的可用性。

3. 集群模式:集群模式 Redis Cluster 是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务器上,以此来降低系统对单主节点的依赖,并可以大大提高 Redis 服务的读写性能。

2.主从、哨兵、集群模式有什么区别

2.1 主从同步

        主从同步是多机部署中最简单的方案,也是存在问题最多的一个方案。它的致命缺点就是当主节点挂了之后,它需要人工进行干预,人工进行修复。(如果半夜三点主节点挂了,那就得半夜打电话喊人去修复,例如主服务器 A,从服务器 B,C,如果 A 挂了,需要将 B 设为主服务器,同时让 C 去 B 服务器同步数据)

 2.2 哨兵模式

        哨兵模式就解决了主从同步的人为干预问题,它可以监控 Redis 实例运行状态,当主服务器挂了,它可以自动实现选择新的主节点以及主从切换,实现故障的自动转移和恢复(自动容灾恢复),确保整个 Redis 系统的可用性。

哨兵是如何工作的 ?如何选择新的主节点 ?

1.主节点失效检测:哨兵会周期性地向 Redis 实例发送命令(心跳包)来检测主节点的存活状态,如果主节点在指定时间内没有回复心检测(例如主节点已下线),哨兵将会认为当前主节点失效了。

2.选举新主节点:一旦哨兵检测到主节点失效后,它会进入新主节点的选举过程。哨兵集群中的哨兵会互相通信,通过多数投票方式决定新的主节点(需要多数哨兵投票才能进行选举)。

        选举过程中,如果出现票数相同的两个节点(优先级相同),则选择复制偏移量(从节点复制主节点的进度)较大的从节点作为新主节点,这样可以确保新主节点尽可能包含更多的数据。

2.3 集群模式

        无论是主从还是哨兵,它都只有一个主节点,所以它的性能扩展是有限的, 而集群模式可以实现多主节点的平行扩展,从而增加系统的一个吞吐量。并且集群模式也具备自动容灾,自动选主,主从切换的功能,所以集群模式才是 Redis 多机部署的最终形态。

Redis 集群是如何存储数据的 ?

        Redis 集群将数据分为固定数量的槽(slot),默认是 16384 个槽,每个主节点负责管理一部分槽,并负责处理与这些槽相关的键值对。

存储示例 >>

数据具体分配到哪个槽位,需要使用 CRC16 算法对要存储的 key 进行 hash 得到一个整数值,然后用这个整数值对 16384 进行取模来得到具体的槽位。 公式:slot = CRC16(key) % 16383

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

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

相关文章

OS 内核级线程代码实现

state和counter实现阻塞和时间片的判断是否跳转进程 先把旧内容通过TR放入原TSS,通过TR找到新TSS然后把TSS内容拷入CPU内部,通过esp值变化实现栈的切换。ip使用的copy的ip

科研 | Zotero导入无PDF的参考文献、书籍

最近在用Zotero在Word中插入参考文献的时候发现,有些没在网上找到对应的PDF版本,但也不是必须要PDF版本的参考文献或者参考书籍,如何才能不影响正常的文献排版 主要是先在网上找到对应文献,书籍,网页等的ISBN&#xf…

springboot多数据源使用

在工作上有一个新项目&#xff0c;现在需要获取旧项目的用户信息、积分的操作等等&#xff0c;所以需要调用另外一个项目的数据库&#xff0c;所以我们可以配置多数据源。 依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-dat…

LeetCode-227-基本计算器Ⅱ

题目描述&#xff1a; 给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将字符串作为数学表达式计…

低代码赋能| 智慧园区项目开发痛点及解决方案

智慧园区是一个综合体&#xff0c;集技术开发、产业发展和学术研究于一体。作为未来智慧城市建设的核心&#xff0c;智慧园区充当着“产业大脑”和“指挥中心”的角色。它通过整合园区内的制造资源和第三方服务能力&#xff0c;实现园区各组成部分的协调运作、良性循环和相互促…

ESP32应用教程(1)— VL53L3CX距离传感器

文章目录 前言 1 产品概述 1.1 技术规格 1.2 系统框图 1.3 设备引脚分布 2 工作流程 2.1 系统功能描述 2.2 状态机描述 2.3 测距模式说明 3 控制接口 3.1 设备地址 3.2 IC写1个字节数据 3.3 IC读1个字节数据 3.4 IC写多个字节数据 3.5 IC读多个字节数据 3.6 IC…

国际评级机构下调美国银行业评级,美国区域性银行风险仍存在?

KlipC报道&#xff1a;国际评级机构标准普尔更新了对10家美国银行的评级&#xff0c;其中5家美国银行的信用评价呗下调一级&#xff0c;2家银行前景展望被调整为“负面”。 关于下调5家银行评级的原因&#xff0c;标普表示&#xff1a;这主要是有些美国地区银行不仅资金状况出现…

rabbitmq的优先级队列

在我们系统中有一个 订单催付 的场景&#xff0c;我们的客户在天猫下的订单 , 淘宝会及时将订单推送给我们&#xff0c;如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒&#xff0c;很简单的一个功能对吧&#xff0c;但是&#xff0c;tianmao商家对我们来说&#…

npm yarn pnpm npx nvm 命令怎么区分怎么用

npm​​​​​​​ 包管理器&#xff0c;可以用来安装、卸载、更新和管理各种包npm的package.json中文文档 参数 - install&#xff1a;安装一个或多个包。例如&#xff1a;npm install 。 uninstall&#xff1a;卸载一个包。例如&#xff1a;npm uninstall 。 update&#xf…

登录认证-登录校验-会话技术方案选择和对比(cookie、session和JWT令牌)

会话技术方案选择和对比 一、背景说明二、会话技术之 Cookie1、为什么说cookie是客户端会话技术2、cookie的优点和缺点 三、会话技术之 Session1、为什么说Session是服务端会话技术2、session的优点和缺点 四、令牌技术JWT1、JWT 的原理2、JWT的优点和缺点 一、背景说明 在开发…

5小时玩转阿里云实时计算Flink实时湖仓之代码文档

文章目录 视频链接 bxg代码文档项目离线数据准备MySQL映射表流数据准备num.txtmakedata.log(空文件)start.shcreate-log.shinsert-data.sh 维表创建paimon_dim表mysql_to_paimon_dim任务 事实表ODS层ECS创建ods层kafka topickafka_ods表mysql_to_kafka_ods数据插入paimon_ods表…

什么牌子的运动耳机好、好的运动耳机排行榜

运动与健康息息相关&#xff0c;人们越来越认识到运动带来的益处&#xff0c;例如增强心肺功能、提高新陈代谢率&#xff0c;并能预防多种慢性疾病。随着社交媒体上越来越多人分享自己的运动心得&#xff0c;更多的人也被激发起参与其中的热情。在运动过程中&#xff0c;音乐的…

vue实现表格的动态高度

需求:表格能够根据窗口的大小自动适配页面高度 防抖和节流函数的使用场景是当需要对频繁触发的事件进行限制时,例如: 防抖函数常用于限制用户在短时间内多次触发某一事件,例如搜索框输入并搜索,当用户一直在输入时,我们可以使用防抖函数来避免多次请求搜索结果,减轻服…

【el-tree】树形组件图标的自定义

饿了么树形组件的图标自定义 默认样式: 可以看到el-tree组件左侧自带展开与收起图标,咱们可以把它隐藏:: .groupList {::v-deep .el-tree-node { .el-icon-caret-right {display: none;} } } 我的全部代码 <div class"groupList"><el…

AI 时代,程序员无需焦虑

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

开发电子木鱼功德+1需要多少钱

冥想木鱼小程序是一种结合了冥想和科技的应用形式&#xff0c;为用户提供了随时随地进行冥想的便捷方式。开发一款高质量的冥想木鱼小程序需要综合考虑技术实现、冥想专业性和用户体验等多个方面。本文将详细介绍冥想木鱼小程序的开发过程&#xff0c;并探讨其中的专业性与思考…

数据的画布,洞察的窗口:畅想可视化大屏的未来

可视化大屏&#xff0c;作为信息传达的魔法之笔&#xff0c;正以其独特的魅力在各个领域迅速崭露头角。它将抽象的数据和信息转化为丰富多彩的图形、图表和动画&#xff0c;以更直观、生动的方式呈现在人们的眼前。 无论身处何地&#xff0c;可视化大屏都能显现其强大的应用价…

GPT和AI绘图学习【第13期】,chatgpt文案制作引导并写出爆款小红书推文、AI换脸、客服话术回复等

第13期GPT和AI绘图学习班&#xff0c;主要内容包括&#xff1a;ChatGPT文案制作引导并写出爆款小红书推文、分析数据、策划视频脚本、图片扩展、高效修图、产品设计、平面设计、线镐渲染、AI换脸、客服话术回复等。 目录&#xff1a; 1.第1天&#xff1a;运用GPT提高工作效率…

【随笔】如何使用阿里云的OSS保存基础的服务器环境

使用阿里云OSS创建一个存储仓库&#xff1a;bucket 在Linux上下载并安装阿里云的ossutil工具 // 命令行&#xff0c;是linux环境 3. 安装ossutil。sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash 说明:安装过程中&#xff0c;需要使用解压工具…

MyBatis的核心技术掌握,简单易懂(上)

目录 一.MyBatis中的动态SQL 二.MyBatis中的模糊查询 1. # 符号 2. $ 符号 ---问题 ---所以大家知道 # 和 $ 在MyBatis中的模糊查询中的区别了嘛&#xff1f;&#xff1f; 三.MyBatis 中的结果映射 1. resultType&#xff1a; 2. resultMap&#xff1a; ---问题 ---…