我是靠谱客的博主 鲤鱼心情,最近开发中收集的这篇文章主要介绍七、redis中CAP问题解决方案-Paxos理论过半通过,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

导读

前面文章【一、深入理解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还有什么疑问或者其他问题,可以评论区告诉我。
为了保证可以连续不间断地获取最新的技术分析及讲解,建议关注本博客【不吃_花椒】。

CAP理论

在这里插入图片描述CAP理论指:

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

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

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

Paxos理论-过半通过

在这里插入图片描述Client读写几台服务器合适?

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

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

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

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

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

往期文章

Redis

一、深入理解redis之需要掌握的知识点

二、redis中String和List两种数据类型和应用场景

二、redis中基础数据类型Hash、Set、SortedSet及其应用场景

三、redis数据存储之跳跃表(SKIP LIST)

四、redis持久化之RDB与AOF

五、redis集群进化过程简单梳理

六、redis中AKF问题解决方案

Java集合

一、深入理解-Java集合初篇

二、Jdk1.7和1.8中HashMap数据结构及源码分析

三、JDK1.7和1.8HashMap数据结构及源码分析-续

四、深入理解Java中的HashMap「网易面试快答」

五、深入理解JDK1.7中HashMap哈希冲突解决方案

六、深入理解JDK1.8中HashMap哈希冲突解决方案

七、JDK1.7中HashMap扩容机制

八、JDK1.8中HashMap扩容机制

Java-IO体系

一、C10K问题经典问答

二、java.nio.ByteBuffer用法小结

三、Channel 通道

四、Selector选择器

五、Centos-Linux安装nc

六、windows环境下netcat的安装及使用

七、IDEA的maven项目的netty包的导入(其他jar同)

八、JAVA IO/NIO

九、网络IO原理-创建ServerSocket的过程

十、网络IO原理-彻底弄懂IO

十一、JAVA中ServerSocket调用Linux系统内核

十二、IO进化过程之BIO

十三、Java-IO进化过程之NIO

十四、使用Selector(多路复用器)实现Netty中Reactor单线程模型

十五、使用Selector(多路复用器)实现Netty中Reactor主从模型

十六、Netty入门服务端代码

十七、IO进化过程之EVENT(EPOLL-事件驱动异步模型)

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

最后

以上就是鲤鱼心情为你收集整理的七、redis中CAP问题解决方案-Paxos理论过半通过的全部内容,希望文章能够帮你解决七、redis中CAP问题解决方案-Paxos理论过半通过所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部