首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Redis可用性与CAP定理

Redis可用性与CAP定理
EN

Stack Overflow用户
提问于 2019-12-28 13:22:00
回答 2查看 9K关注 0票数 13

在CAP定理中,Redis被指定为一个缺乏可用性(具有分区容限和一致性)的数据库。

但在许多地方,Redis被认为是一个高可用性的键值商店。

晓以大义?如果你能给我一个深入的答复,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-29 06:35:24

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

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

也就是说,当P发生时,要么是PA,要么是PC。

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

具体来说,高可用性不仅仅是对分区的容忍。Redis有主从体系结构,如果主从失败,那么Redis哨兵将奴隶提升为新主人,从而使整个解决方案变得非常可用。由于许多原因(例如内存不足),主机可能会失败(或变得不可用),这并不一定是由于网络分区造成的。

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

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

Redis也被称为“最终一致”,因为当(P)发生时,少数人的感觉仍然可用几秒钟,而在这段时间内对少数人的感知所做的任何写都最终会被丢弃。

票数 19
EN

Stack Overflow用户

发布于 2021-03-11 08:26:30

根据第170页中的"Redis要点“一书:

由于Redis Sentinel和Redis集群是分布式系统,利用CAP定理对它们进行分析是公平的。网络分区在分布式系统中是不可避免的,因此它应该确保一致性或可用性;也就是说,它应该是CP或AP。理论上,Redis Sentinel和Redis群集在网络分区下既不一致也不可用。但是,有些配置可以最大限度地减少一致性和可用性问题。它们无法提供可用性,因为有法定人数需要就主选举达成一致,并且取决于法定人数的决定,系统的一部分可能变得不可用。它们不能在网络分区下提供一致性,例如,当两个或多个分区同时接受写操作时。当网络恢复和分区连接时,其中一些写操作将丢失(冲突不会自动解决,客户端也不会公开)。

希望这将有助于you.The在线图书:(intelligence/9781784392451/9/ch09lvl1sec52/the-cap-theorem))

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59511275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档