【Redis】第4讲 分布式数据库CAP原理

CAP简介

传统的关系型数据库事务具备ACID

  • A:原子性
  • C:一致性
  • I:独立性
  • D:持久性

分布式数据库事务具体CAP:

  • C:强一致性

即更新操作成功并返回客户端后,所有节点在同一时间的数据完全一致,这就是分布式的一致性。一致性的问题在并发系统中不可避免,对于客户端来说,一致性指的是并发访问时更新过的数据如何获取的问题。从服务端来看,则是更新如果复制分布到整个系统,以保证数据最终一致。

  • A:高可用性

即服务一直可用,而且要是正常的响应时间。好的可用性主要是指系统能够很好的为用户服务,不出现用户操作失败或者访问超时等用户体验不好的情况。

  • P:分区容错性

即分布式系统在遇到某节点或网络分区故障时,仍然能够对外提供满足一致性或可用性的服务。

分区容错性要求能够使应用虽然是一个分布式系统,而看上去却好像是在一个可以运转正常的整体,比如现在的分布式系统中有某一个或者几个机器宕掉了,其它剩下的机器还能够正常运转满足系统要求,对于用户而言并没有什么体验上的影响。

CAP理论

CAP理论提出就是针对分布式数据库环境的。所以,P这个属性必须容忍它的存在,而且是必须具备的。

因为P是必须的,那么我们需要选择的就是A和C。

最常见的例子就是读写分离,某个节点负责写入数据,然后将数据同步到其它节点,其它节点提供读取的服务,当两个节点出现通信问题时,你就面临选择A(继续提供服务,但是数据不保证准确),C(用户处于等待状态,一直等到数据同步完成)。

CAP总结

分区是常态,不可避免,三者不可共存

可用性和一致性是对立的

  • 一致性高,可用性低
  • 一致性低,可用性高

因此,根据CAP原理将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类。

  • CA:单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP:满足一致性,分区容忍性的系统,通常性能不是特别高。
  • AP:满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

你可能感兴趣的:(#,Redis,数据库,redis,分布式)