总线 微架构 CPU 主频 芯片 寄存器
主页 正文

Redis集群模式深度解析:主从、哨兵与Cluster对比

再谈Redis三种集群模式:主从模式、哨兵模式和Cluster模式

Redis 支持三种集群模式,旨在提高性能、可用​​性和可扩展性。
主从模式适合高并发读取,典型部署为一主二从节点; Sentinel模式提供高可用性,典型配置为1主2从加3个看门狗节点,集群模式可同时支持高并发读写。
为了广泛扩展,建议部署为三主三从。
主从模型的本质是主从数据库之间进行数据同步,保证高可用性。
Sentinel模式在此基础上提供了自动故障转移,但写入性能受到限制。
集群模式通过哈希槽分配和节点扩展实现分布式数据存储,提高了集群的写入能力和可扩展性。
在搭建环境时,主从模式需要配置主库和从库,哨兵模式还需要配置哨兵节点来监控主从节点,配置节点之间的连接和通信,以及分配哈希槽。
通过测试,客户端和Springboot应用都可以批量验证数据的读写和一致性。

redis中主从、哨兵和集群这三个有什么区别?

在采访中,与Redis Architecture有关的主奴隶体系结构。
这些包括关键概念,例如Seentinels和Clusters。
然后 我们将更好地解释Redis体系结构的主要区别。
在Redis建筑师中 主奴隶的主奴隶架构师通过复制服务器之间的数据来促进数据和性能的可用性。
主服务器继续将数据推向从服务器以备份数据。
当主服务器损坏时 从从服务器立即升级到主服务器并访问服务。
复制过程使用Psync订单,包括全职转世和部分重新排列模式。
引入了哨兵系统以获得更高的可用性水平。
捆绑包的结果是,哨兵会监视主服务器的状态并找到主服务器的损害。
将自动选择从服务器获得自动故障。
哨兵已确认其在由PING ORSEAS监视的主服务器期间的情况。
共享集通过将数据分配到许多REDIS事件中来了解分布的分布。
扩展系统性能是负责存储每个数据组件的负责。
通过哈希插槽重新记录到不同的实例分发 Codis 等服务器端路由解决方案通过代理层分发数据。
当集群中的实例动态增加或减少时。
通过消息传播和上下文映射更新来确保正确的路由。
数据迁移是集群中动态扩展实例时的一个重要过程。
当客户端请求数据时; 如果目标没有相关数据; 将返回重定向命令以将用户引导至正确的实例。
迁移过程涉及到实例之间数据的逐步传输和通信,以保证迁移过程中数据的一致性和可用性。
通过这些架构设计,Redis提供了高可用性,以满足不同场景的需求。
它可以提供高可扩展性和数据一致性。
主从架构; 看门狗和集群在提高系统可靠性和性能方面发挥着重要作用。

玩转Redis的高可用(主从、哨兵、集群)

当群集容量达到上限时,支持在线扩展和在线广播将变得非常困难; 。
在此模式下,如果主机不正确,前哨将自动选择主,并将其他下属指向新主人。

在“主坐标”模式下,Redis还提供了Sentinel命令Redis-Sentinel。
Sentinel是独立执行的独立过程。
原则是巡逻过程将命令发送到所有Redis机器人,并正在等待Redis服务器响应,从而跟踪了几个启动的Redis副本。
通常,为了促进决策和选举,使用了奇数的哨兵。
几个守卫形成了哨兵群。
监护人将直接联系彼此,以检查守卫是否正常工作。
同时,他们会发现主要的战斗机和后卫会决定选择新的主人。
·发送命令时,让Redis服务器返回以监视您的工作状况,包括主服务器和下属服务器; 我们可以使用几个哨兵进行监视。
每个巡逻也将受到控制,从而形成各种巡逻模式。

前哨与Kafka群集中的Zookeper函数非常相似。

·安全模式基于“主要下属”模式,“后卫”模式具有“主要下属”模式的所有优点。

·主要的下属可以自动切换,这使系统更可靠和负担得起。

·在“主要下属”模式下具有缺陷,每个计算机上的数据相同,并且内存的可访问性很低。

·Redis很难维持在线爆炸。
当集群容量达到上限时,在线表达将变得非常复杂。

本身,redis群集的模式不使用一致的哈希算法,使用插槽。

Redis Sentinel模式主要可以提供高可用和读写分离。
但这种模式下,每个Redis服务器存储的是相同的数据,比较浪费内存,所以redis3.0中增加了集群。
集群模式实现了Redis数据和分片的分布式存储,即每个Redis节点存储不同的; 每个节点通过集群总线与其他节点通信。
通信时使用特殊的端口号,即外部服务的端口号加10000。
例如,如果某个节点的端口号是6379,那么它与其他节点通信的端口号就是16379。
节点之间的通信使用特殊的二进制协议。

为客户端查看整个集群。
代表一个整体。
客户端可以连接到任何节点来工作,就像使用单个 Redis 实例一样。
当客户端运行时没有将某个键分配给某个节点时,Redis 将返回一个控制命令以指向正确的节点。
这有点类似于浏览器页面上的 302 重定向。

根据官方建议,集群部署至少需要三个主节点,最好采用三主三从的六节点模型。

每个 Redis 节点都有两件事。
其中之一是插槽。
其取值范围为0-16383。
可以从上面的redis-trib.rb文件中读取。
执行结果显示了分布情况。
其中 16,383 个是三个主控上的插槽。
另外一个是cluster,可以理解为类似于Sentinel的集群管理插件。

当我们的访问key到来时,Redis会根据crc16算法计算结果,然后将结果与16384进行余数计算,这样每个key就会对应一个0中的数字hash槽-16383之间通过这个值来查找对应槽位对应的节点,然后自动直接到对应的节点进行访问操作。

为了保证高可用,redis-cluster实现了主从模式,一个主节点对应一个或多个从节点。
当其他主节点 ping 主节点 master1 时,如果在超时时间内有超过一半的主节点与 master1 通信,则认为 master1 离线,从节点 master1 将会开启,slave1 将成为主节点继续运行。
提供服务。

如果master1和它的从机slave1都down了,整个集群就会因为集群槽位映射不完整而进入失败状态。
如果集群中超过一半的master挂掉,那么无论是否有slave,集群都会进入故障状态。

redis-cluster采用了去中心化的思想。
客户端直接连接到Redis节点,无需连接到中间代理层。
集群中的所有节点,并且可以连接到集群中的任何节点。
一个可用节点就足够了。

扩容redis集群涉及向集群添加机器,缩小集群涉及从集群中移除机器以及在集群中的节点之间重新分配slot 16383(数据迁移)。

扩缩容也使用集群管理工具redis-tri.rb。

扩容时,首先使用redis-tri.rbadd-node向集群添加新机器。
虽然新机器已经在集群中,但它没有分配插槽,仍然无法工作。
从。
新节点只有使用redis-tri.rbreshard重新哈希segment(数据迁移)并将旧节点上的slot分配给新节点后才能生效。

缩容时,先使用redis-tri.rbreshard移除机器上的槽位,然后使用redis-tri.rbadd-del移除机器。

采用去中心化的思想,数据按照时隙跨多个节点存储和分布,数据在节点间分布,数据分布可动态调整;

可扩展:线性扩展至1000个。
多个节点,可以动态添加或删除节点;

高可用性:当部分节点不可用时,集群仍然可用。
通过添加从设备作为数据备份,可以实现自动故障转移、状态信息共享节点之间通过Gossip协议进行,利用投票机制完成从Slave到Master的晋升;

降低运维成本,提高系统可靠性和可用性。

1. RedisCluster是一种没有中心节点的集群架构。
它使用Goss(谣言传播)协议来协作自动恢复集群的状态。
然而,GosSIp存在消息延迟和消息冗余的问题。
当集群节点过多时,节点之间的PING/PANG通信需要持续进行,不必要的流量会消耗大量的网络资源。
虽然Reds4.0对此进行了优化,但是这个问题依然存在。

2. 数据迁移问题

RedisCluster可以动态扩缩容节点。
在目前的实现中,这个过程仍然是半自动的,需要人工干预。
当扩容或缩容时,需要进行数据迁移。

为了保证迁移一致性,所有Redis迁移都是同步的。
当进行迁移时,两端的Redis都会进入不同长度的阻塞状态。
对于小按键来说这个时间可以忽略。

,但如果Key内存占用过高,严重时会导致集群崩溃,导致不必要的切换。

Master和slave

Sentinel模式:主节点挂起后,Sentry进程会主动选举新的master,访问性很好,但是每个节点存储的数据是一样,浪费内存空间。
数据量不大,簇大小也不是很大。

集群模式:数据量较大,QPS要求较高。
重新结果在Redis 3.0之后正式上线。

Redis Cluster集群模式部署

发布REDIS群集模型以实现分布式存储容量,并且每个Redis结存储都是不同的,提高了资源使用效率并避免记忆浪费。
与Sentry模式相比,质量模式支持高可用性,读取和编写本章,并且具有以下特征:

1。
每个Redis仆人存储不同的数据以改善内存使用。
2。
实现分布式存储以提高数据处理和访问速度。
3。
支持和下载自动故障以确保稳定的服务。
4。
提供监控和管理质量状态的状态,以方便操作和维护。

发布步骤主要包括主要步骤,例如环境准备,安装程序集,服务形成和启动:

安装和汇编环境的配置,服务重新启动服务以及开始形成REDIS服务修改的权限然后开始内核Linux参数REDIS群集集和管理集群。
同时,对于日常操作和维护,需要掌握大规模运营和开口的开口。
有关特定流程和详细步骤,请参阅官方文件或相关技术论坛。

关于更多流程,维护和技术参与,欢迎访问“小陈·云西”的一般帐户,以获取最新文章和实际情况。

热门资讯
西门子S7-300生成正弦波PWM编程技巧分享
Redis集群不可用风险解析及解决方案
广泰数控车床G代码与M代码全解析,避免G84报警技巧分享
蚊香立起小妙招:简易替代品及摆放技巧解析
苹果手机放大镜设置位置指南
汇编常用指令大全
机械硬盘安装位置与步骤详解
PLC指令类型详解:基本、应用与高级指令盘点