CAP理论概述

CAP理论

 

CAP原则,指在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可同时拥有。redis

 

一致性(C) 在分布式系统中的全部数据备份,在同一时刻是否一样的值。mongodb

可用性(A) 在集群中一部分节点故障后,集群总体是否还能响应客户端的读写要求。(对数据更新具有高可用性)数据库

 

分区容错性(P) 以实际效果而言,分区至关于对通讯的时限要求。系统若是不能在时限内达成数据一致性,就意味着发生了分区的状况,必须就当前操在C和A之间作出选择。json

 

CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而因为当前的网络硬件确定会出现延迟丢包等问题,因此分区容忍性是咱们必须须要实现的。因此咱们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。网络

 

与BASE的关系数据结构

BASE就是为了解决关系数据库强一致性引发的问题而引发的可用性下降而提出的解决方案。分布式

BASE是下面三个术语的缩写:队列

  • 基本可用(Basically Available)
  • 软状态(Soft state)
  • 最终一致(Eventually consistent)
  1. 目前最快的KV数据库,10W次/S, 知足了高可用性。
  2. Redis的k-v上的v能够是普通的值(基本操做:get/set/del) v能够是数值(除了基本操做以外还能够支持数值的计算) v能够是数据结构好比基于链表存储的双向循环list(除了基本操做以外还能够支持数值的计算,能够实现list的二头pop,push)。若是v是list,可使用redis实现一个消息队列。若是v是set,能够基于redis实现一个tag系统。与mongodb不一样的地方是后者的v能够支持文档,好比按照json的结构存储。redis也能够对存入的Key-Value设置expire时间。
  3. Redis的v的最大远远超过memcache。这也是实现消息队列的一个前提。
相关文章
相关标签/搜索