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

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.hqwc.cn/news/702274.html

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

相关文章

buff禁售武器箱和胶囊的原因,及游戏搬砖人该如何应对

大家好,我是童话,相信大家都看到这个消息了,buff平台在14号中午11点左右,已经全面禁止了武器箱和胶囊,纪念包等的上架和售卖。在饰品市场直接搜索武器箱或者胶囊,是完全搜索不出来任何东西的哈。 面对这一消…

平衡三进制小数详解与进制转换

标准三进制是“逢三进一,退一还三”的机制,平衡三进制与之类似,但就是偏移了一下变得对称了,平衡三进制是逢/-2进1或进T的,平衡三进制与标准三进制可以相互转换,但这样显得有点多余了,所以这里只…

Nginx 7层负载均衡的搭建

目录 负载均衡的理解 修改配置文件 测试 1. 选择在 DMZ 区测试,使用 db 服务器进行测试 2.选择在外网测试负载均衡效果 负载均衡的理解 负载均衡:load balancer,简称LB Nginx 既是一个 web 服务器软件,也是一个负载均衡软件&a…

谷歌I/O 2024大会全面硬刚OpenAI

🦉 AI新闻 🚀 谷歌发布升级版Gemini机器人 竞争OpenAI ChatGPT-4 摘要:谷歌展示了升级版的 Gemini 聊天机器人,其支持实时处理视频和语音输入,并准确回答问题。此次发布时机与 OpenAI 公布 ChatGPT-4o 新模型几乎同步…

在浏览器执行js脚本的两种方式

fetch请求get 在浏览器执行http请求,可以使用fetch函数; fetch(“url”).then(response => response.text()) .then(data => console.log(JSON.parse(data)[‘status’])) .catch(error => console.error(error)) 直接返回json数据: fetch(“url”).then(response…

Milvus 安装与配置

一、环境准备 在安装 Milvus 之前,确保你的系统满足以下要求: 操作系统:Milvus 支持 Linux 操作系统,如 Ubuntu、CentOS 等。硬件资源:推荐使用具有足够 CPU、内存和 SSD 存储的机器。对于大规模数据集,高…

在数据库中使用存储过程插入单组/多组数据

存储过程可以插入单组数据,也可以以字符串的形式插入多组数据,将字符串中的信息拆分成插入的数据。 首先建立一个简单的数据库 create database student; use student;选中数据库之后建立一张学生表 create table stu(uid int primary key,uname varc…

K8s 二进制部署 上篇

一 K8S按装部署方式: ① Minikube Minikube是一个工具,可以在本地快速运行一个单节点微型K8S,仅用于学习、预览K8S的一些特 性使用。 部署地址:https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一个工…

(done) NLP+HMM 协作,还有维特比算法

参考视频:https://www.bilibili.com/video/BV1aP4y147gA/?p2&spm_id_frompageDriver&vd_source7a1a0bc74158c6993c7355c5490fc600 (这实际上是 “序列标注任务”) HMM 的训练和预测如下图 训练过程:我们首先先给出一个语…

【Doris的安装与部署】

1 集群规划和环境准备 Doris作为一款MPP架构的OLAP数据库,可以在绝大多数主流的商用服务器上运行。 1.1 环境要求 一般推荐使用Linux系统,版本要求是CentOS 7.1及以上或者Ubuntu 16.04及以上,这也是目前服务器市场最主流的操作系统。 操作…

技艺高超的魔法师:Java运算符

在Java编程的世界里,运算符是连接变量和表达式的关键纽带,它们使得程序能够执行计算、比较、赋值等一系列操作。 一,基本概念 1,运算符是什么? 运算符是操作变量的符号。 2,分类 Java中的主要运算符类…

Spring Boot实现多数据源快速入门

1.为什么需要多数据源? 多数据源既动态数据源,项目开发逐渐扩大,单个数据源、单一数据源已经无法满足需求项目的支撑需求。本文采用dynamic-datasource-spring-boot-starter实现多数据源, 主要特性 支持 数据源分组 &#xff0…