导读

前面文章【一、深入理解redis之需要掌握的知识点 】中,我们对redis需要学习的内容框架进行了一个梳理。

【二、redis中String和List两种数据类型和应用场景 】、【二、redis中Hash、Set、SortedSet应用场景 】两篇文章我们对redis中String、List、Hash、Set、SortedSet五种数据类型做了一下讲解,并且对他们各自的应用场景进行了介绍。

【三、redis数据存储之跳跃表(SKIP LIST) 】深入学习了支撑SortedSet排序背后的数据结构,跳跃表;

【四、redis持久化之RDB与AOF 】学习了redis中的两种持久化策略:RDB(快照)和AOF(追加日志);
【五、redis集群进化过程 】文章中我们学习了redis集群的进化过程,包括解决单点故障问题和性能瓶颈问题等。
【六、redis中AKF问题解决方案 】讲解了Redis使用及集群进化过程中AKF问题的解决方案。

本章我们将要讲解Redis使用过程中出现CAP问题的解决方案,以及初步认识Paxos分布式一致性协议。

redis的reactor模型源码 redis ap模型_大数据


如果大家在工作、学习、面试中针对redis还有什么疑问或者其他问题,可以评论区告诉我。
为了保证可以连续不间断地获取最新的技术分析及讲解,建议关注本博客【不吃_花椒】。

CAP理论

redis的reactor模型源码 redis ap模型_数据结构_02

CAP理论指:

C->一致性;
A->可用性;
P->分区容错性。

在实际使用过程中要对以上三种特性做综合处理,得出一个居中的解决方案。

CAP理论详见(分布式-CAP定义的含义章节)

Paxos理论-过半通过

redis的reactor模型源码 redis ap模型_redis_03

Client读写几台服务器合适?

1.如果client只把数据写入一台服务器,那么client大概率(2/3)从其他两台服务器获取数据可能为空,违背了一致性。
-这种未过半情况的出现叫做脑裂。 2.如果client把数据写入到其中两台服务器,那么client大概率(2/3)可以获取到正确的数据。
-这种情况叫做最终一致性。 3.如果client把数据都写入到三台服务器,虽然一致性保证了,但是违背了可用性。
-强一致性破坏可用性

Paxos理论的过半通过
以上几种数据读写方案中,只有第二种方案即满足了一致性又满足了可用性,也就是Paxos理论的过半通过。
过半通过方案在实际使用时,有以下几种实现:
客户端实现
当客户端从服务端获取数据时候,对从三个服务器获取到的数据进行比对,数据一致性最高的数据表示为正确的数据-这种实现方案的缺点是,当有100台服务器时,客户端需要维护与100台服务器的连接,性能消耗大。集群内部实现
客户端可以从服务集群中的任意一台获取数据,当获取数据的指令到达任意节点后,节点内部进行一次数据同步。选举出正确性最高的数据,然后覆盖到集群内部所有服务中,然后返回给客户端。

如需了解更多更详细内容也可关注本人CSDN博客:不吃_花椒

后续redis中将要讲解的内容梳理

redis的reactor模型源码 redis ap模型_数据结构_04


redis的reactor模型源码 redis ap模型_大数据_05

redis的reactor模型源码 redis ap模型_分布式_06