gpt4 book ai didi

Redis 可用性和 CAP 定理

转载 作者:行者123 更新时间:2023-12-03 06:36:33 29 4
gpt4 key购买 nike

在CAP定理中,Redis被指定为缺乏可用性(具有分区容错性和一致性)的数据库。
但是在很多地方,Redis 被认为是一种高可用的键值存储。
CAP theorem and DBMS
什么是对的?如果您能提供深入的答案,我将不胜感激。

最佳答案

我首先要说没有“CA”类别。大多数系统在没有网络分区的情况下都是 CA。

CAP 定理适用于分布式数据存储,并在网络分区 (P) 发生时生效。它表示当 (P) 发生时,分布式数据存储必须在一致性 (C) 或可用性 (A) 之间进行选择。

即当 P 发生时,要么是 PA 要么是 PC。

RDBMS 曾经是 PC,但随着时间的推移,它们也开始支持 PA。

具体到 Redis,高可用性不仅仅是分区容错。 Redis 具有 Master Slave 架构,如果 Master 出现故障,Redis Sentinels 会提升一个 Slave 为新的 Master,从而使整个解决方案具有高可用性。并且 master 可能会由于多种原因(例如内存不足)而失败(或变得不可用),这不一定是由于网络分区。

然后是网络分区 (P) 的情况,如果 (P) 发生,那么 Redis 在少数分区中变得不可用。这就是为什么从 CAP 的角度来看,Redis 是 CP,因为它在少数分区中变得不可用。请注意,它仍将在多数分区中可用。

您可以阅读有关 Redis High Availability here 的更多信息。有关分区的详细信息,请参阅标题为“分区下的一致性”的段落。

Redis 也称为最终一致,因为当 (P) 发生时,少数分区仍然可用几秒钟,并且在此期间对少数分区所做的任何写入最终都会被丢弃。

关于Redis 可用性和 CAP 定理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511275/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com