Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Redis Sentinel与Redis聚类相比如何


Redis Sentinel与Redis聚类相比如何


Redis Sentinel和Redis群集是REDIS提供的两种不同的机制,以增强可靠性和可用性,但它们的体系结构,用例和可靠性功能在很大程度上有所不同。

Redis Sentinel主要是用于使用复制但不碎片数据的REDIS设​​置设计的高可用性(HA)解决方案。 Sentinel监视主和REDIS实例,为客户提供自动故障转移和配置更新。它是一个分布式系统,具有多个前哨实例,可靠地检测故障。它的可靠性核心优势来自哨兵中的集体协议(Quorum),以检测大型故障并启动故障转移。这样可以降低误报,并确保故障转移措施由多数派授权,保留系统的一致性和可用性。 Sentinel通过推广最新更新的副本来处理故障转移,重新配置其他副本并告知客户新的主地址。 Sentinel的体系结构设计避免了故障转移系统通过在独立的机器或区域上进行多个实例而成为单个故障。它还执行持续的监视并提供有关重新案例状态的通知,从而提高操作意识和对问题的响应能力。 Sentinel的高可用性功能使其适用于需要故障转移和监视但不需要数据划分或大规模水平缩放的较小的Redis部署。

相比之下,Redis群集是一种更复杂的集成解决方案,将数据碎片与高可用性结合在一起。群集分区跨多个redis节点(Masters)自动分区,每个节点可能具有复制品。聚类体系结构是分散的,没有单个管理点,可以水平扩展并通过在节点之间分配负载来处理较大的数据集。 REDIS群集包括失败节点的内置复制和自动故障转移,支持在网络分区或节点故障期间继续操作。与Sentinel不同,REDIS群集固有地管理数据分布(Sharding),从而优化了工作负载和平衡资源利用率。但是,redis群集具有一些复制限制,例如单层复制(每个主仅复制到其奴隶)。尽管两个系统中的异步复制,但由于碎片和平衡的负载,群集设计用于更高的吞吐量和较低的延迟。

关于可靠性,哨兵的故障转移机制依赖于领导者前哨的判断和选举来执行故障转移任务,从而确保仔细的协调并减少了分裂脑场景的机会。 Sentinel设置通常至少包含三个哨兵实例,以维护易于故障的Quorum系统,即使某些Sentinel节点失败,该系统也可以继续运行。但是,Sentinel不提供数据碎片,这可能会导致复制品的实用性不足,因为只有一位主人处理写作。这限制了其随着数据大小和工作量扩展的能力,这意味着数据可用性和访问速度的可靠性可能会在较大的部署中降低。

REDIS群集的可靠性在扩展时会闪耀。它通过在多个大师中分配数据并复制它们来提高容错性。如果某些节点失败或无法实现,只要维持大多数大师赛,群集就可以继续运行。分布式共识允许单个主节点的自动故障转移,即使在部分网络分区期间也可以保持群集的操作。这使得Redis群集可靠,对于需要可用性和水平可扩展性的大型高需求环境。但是,设置,管理和从集群中的故障中恢复可能会更加复杂,如果群体丢失或失败的状态过渡,配置或网络问题可能会导致跨度或数据不一致。

总而言之,Redis Sentinel通过在不碎片的情况下进行协调的监视和故障转移,可提供强大的可靠性。它适合较小的部署或方案,其中高可用性至关重要,但是数据量和访问负载是由单个主人管理的。另一方面,Redis群集通过碎片数据并在多个节点上复制,可提供可靠性与水平可扩展性相结合,从而确保尽管节点失败和较大,更苛刻的环境中进行了网络分区,但仍在进行持续的操作。它们之间的选择取决于相对于数据大小,工作量以及系统所能忍受的复杂性的特定可靠性需求。

此概述包括有关监视,故障转移过程,法定人数机制,复制体系结构,可伸缩性的影响以及REDIS Sentinel和Redis群集之间可靠性的操作权衡的详细注意事项。