Redis的集群模式——Java全栈知识(20)

news2024/12/23 23:29:40

1、主从模式

Redis 支持主从模式的集群搭建,这是 Redis 提供的最简单的集群模式搭建方案,目的是解决单点服务器宕机的问题。当单点服务器发生故障的时候保证 Redis 正常运行。
主从模式主要是将集群中的 Redis 节点分为主节点和从节点。然后读和写发生在主节点上面,从节点只能读,主节点修改的数据将同步到从节点。
当主节点发生故障的时候,需要手动的将一个从节点升级为主节点,即可保证 Redis 的正常运行
image.png|700

优点:

  • 主从模式搭建简单
    缺点:
  • 由于从节点升级需要人工介入,所以如果介入不及时会导致数据不一致的问题。

2、哨兵机制

image.png
哨兵模式相较于主从模式,就是新增了哨兵节点去监控 Redis 节点的运行状态。主从模式是 master 节点负责写请求,然后异步同步给 slave 节点,从节点负责处理读请求。如果 master 宕机了,需要手动将从节点晋升为主节点,并且还要切换客户端的连接数据源。这就无法达到高可用,而通过哨兵模式就可以解决这一问题。

哨兵模式是 Redis 的高可用方式,哨兵节点是特殊的 redis 服务,不提供读写服务,主要用来监控 redis 实例节点。哨兵架构下 client 端第一次从哨兵找出 redis 的主节点,后续就直接访问 redis 的主节点,不会每次都通过 sentinel 代理访问 redis 的主节点,当 redis 的主节点挂掉时,哨兵会第一时间感知到。
哨兵节点定期向所有主节点和从节点发送 PING 命令,如果在指定的时间内未收到 PONG 响应,哨兵节点会将该节点标记为主观下线。如果一个主节点被多数哨兵节点标记为主观下线,那么它将被标记为客观下线。
并且在 slave 节点中重新选出来一个新的 master,然后将新的 master 信息通知给 client 端,从而实现高可用。这里面 redis 的 client 端一般都实现了订阅功能,订阅 sentinel 发布的节点变动消息。

哨兵的任务可以总结为以下几点:

  1. 监控 Redis 节点的状态
  2. 主动容灾处理:当主节点发生故障之后,通过算法选举出新的主节点。
  3. 转移客户端来连接源:当主节点不可用时,客户端链接主节点失败后,哨兵会将新的主节点地址发送给客户端,转移为新的连接源。

3、Cluster 模式

Cluster 模式将 Redis 集群划分为多个分片,每个分片都是一个主从的结构,也就是每个分片都有主节点和从节点。
image.png
Cluster 将数据分片到每个节点上,每个分片都承担一部分的数据。针对于分片,主节点只负责读和写,从节点只负责读操作,从节点的数据是依靠主节点同步过来,也就是和主从模式一样。
Redis Cluster 能够自动检测节点的故障。当一个节点失去连接或不可达时,Redis Cluster 会尝试将该节点标记为不可用,并从可用的从节点中提升一个新的主节点。
Redis Cluster 是适用于大规模应用的解决方案,它提供了更好的横向扩展和容错能力。它自动管理数据分片和故障转移,减心少了运维的负担。
Cluster 模式的特点是数据分片存储在不同的节点上,每个节点都可以单独对外提供读写服务。不存在单点故障的问题。

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

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

相关文章

C++初阶学习第六弹——string(1)——标准库中的string类

前言: 在前面,我们学习了C的类与对象,认识到了C与C语言的一些不同,今天,我们将进入C的 关键部分——STL,学习完这部分之后,我们就可以清楚的认识到C相比于C语言的快捷与便利 目录 一、为什么有s…

springboot房屋租赁系统

摘要 房屋租赁系统;为用户提供了一个房屋租赁系统平台,方便管理员查看及维护,并且可以通过需求进行设备信息内容的编辑及维护等;对于用户而言,可以随时进行查看房屋信息和合同信息,并且可以进行报修、评价…

面试集中营—rocketmq架构篇

一、基本定义 Apache RocketMQ 是一款低延迟、高并发、高可用、高可靠的分布式消息中间件。消息队列 RocketMQ 可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。 Topic:消息主题&…

基于yolov2深度学习网络的单人口罩佩戴检测和人脸定位算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ..............................................................I0 imresize…

详述进程的地址空间

进程的地址空间 合法的地址 (可读或可写) 代码 (main, %rip 会从此处取出待执行的指令),只读数据 (static int x),读写堆栈 (int y),读写运行时分配的内存 (???),读写动态链接库 (???) 非法的地址 NULL,导致 se…

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二

Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之触控开关二 1.概述 这篇文章在触摸屏上绘制一个开关,通过点击开关实现控制灯的开关功能。 2.硬件 硬件连接参考第一篇文章介绍 Arduino-ILI9341驱动-SPI接口TFTLCD实现触摸功能系列之获取触控坐标一 3.实现…

使用Caché管理工具

Cach通过一个web工具来对其进行系统管理和完成管理任务,该方法的一个好处是不必将Cach安装到用于管理的系统上。目前,通过网络远程管理和控制对站点的访问,这些都比较容易。因为数据及其格式信息都直接来自被管理的系统,因此,这也可以最小化跨版本的兼容问题。 本文将描述…

【知识碎片】2024_05_14

本篇记录了两道关于位运算的选择题,和一道有点思维的代码题。 C语言碎片知识 求函数返回值,传入 -1 ,则在64位机器上函数返回( ) int func(int x) {int count 0;while (x){count;x x&(x - 1);//与运算} return c…

Java医院绩效核算系统与his对接所需数据有哪些?java+springboot+MySQL医院绩效管理系统-构建智慧医疗生态

Java医院绩效核算系统与his对接所需数据有哪些?javaspringbootMySQL医院绩效管理系统-构建智慧医疗生态 医院绩效核算系统与his对接所需数据 1、诊察工作量绩效:信息系统-财务权限-统计报表-报表浏览-财务常用报表-门诊医生工作量报表 2、判读及操作工…

微信小程序 - - - - - 使用TDesign库(微信小程序UI库)

使用TDesign库 1. 初始化依赖2. 安装TDesgin3. npm构建3. 修改 app.json 1. 初始化依赖 npm init -y2. 安装TDesgin yarn add tdesign-miniprogram -S --productionor npm install tdesign-miniprogram -S --production3. npm构建 3. 修改 app.json 将 app.json 中的 “styl…

CTF如何学习?

CTF如何学习?打CTF有什么用 CTF本身有几个常见的领域 MISC WEB [逆向 密码学](https://www.zhihu.com/search?q逆向 密码学&search_sourceEntity&hybrid_search_sourceEntity&hybrid_search_extra{“sourceType”%3A"answer"%2C"sourc…

ubuntu 22.04 安装 RTX 4090 显卡驱动 GPU Driver(PyTorch准备)

文章目录 1. 参考文章2. 检查GPU是Nvidia3. 卸载已有驱动3.1. 命令删除3.2. 老驱动包 4. 官网下载驱动5. 运行5.1. 远程安装关闭交互界面5.2. 运行5.3. 打开交互界面 6. 检测与后续安装 1. 参考文章 https://blog.csdn.net/JineD/article/details/129432308 2. 检查GPU是Nvid…

【MySQL】Mysql——安装指南(Linux)

MySQL8.0.26-Linux版安装 1. 准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2. 下载Linux版MySQL安装包 3. 上传MySQL安装包 4. 创建目录,并解压 mkdir mysqltar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql5. 安装mysql的安装包 …

CAPL入门之使用CAPL记录测试Logging

0 前言 以往测试的log都是直接从trace导出,但是最近发现trace中能导出的数据是有限的,如果测试的时间过长,新的数据就会把之前的数据全部覆盖,并且对于长时间的测试,直接导出trace的内容也会造成查找效率低下的问题。因…

iOS 创建pch文件

1.参考链接(xcode8添加方法,之前的跟这个差不多): 参考链接 2.自我总结: (1)创建pch文件: 注意点:1)注意选中所有的targets(看图明义) 2&…

关于链表相关的OJ题

✨✨✨专栏:数据结构 🧑‍🎓个人主页:SWsunlight 一、 OJ题 返回倒数第K个节点: 1、遍历链表一遍:用2个指针,phead和ptail先让ptail先走k步,然后让2个指针一起走,快的走到NULL即…

计算机发展史故事【13】

微电脑先锋 与第一台电子计算机埃历阿克的命运相似,1974 年面世的“牛郎星”能否作为世界上第一台微电脑被载入史册,人们似乎也存在着分歧。 拥有微处理器发明权的英特尔公司,难道自己不会组装微电脑,非得罗伯茨来越俎代庖吗&…

从零开始:C++ String类的模拟实现

文章目录 引言1.类的基本结构2.构造函数和析构函数3.基本成员函数总结 引言 在C编程中,字符串操作是非常常见且重要的任务。标准库中的std::string类提供了丰富且强大的功能,使得字符串处理变得相对简单。然而,对于学习C的开发者来说&#x…

【考研数学】强化阶段,张宇《1000题》正确率达到多少算合格?

首次正确率在60%以上就算是合格! 张宇老师的1000题真挺难的,所以如果第一次做正确率不高,不要太焦虑,1000题不管是难度,综合度还是计算量,都比其他的题集高一截。 大家真实的做题情况下,如果正…

前端工程化 - 快速通关 - ES6

目录 ES6 1.1 let 1.2 const 1.3解构 1.4链判断 1.5参数默认值 1.6箭头函数 1.7模板字符串 1.8Promise 1.9Async 函数 1.10模块化 ES6 ●ECMAScript(ES) 是规范、 JavaScript 是 ES 的实现 ●ES6 的第一个版本 在 2015 年 6 月发布&#xff0c…