美文网首页
nosql&数据库CAP

nosql&数据库CAP

作者: 虫儿飞ZLEI | 来源:发表于2018-12-04 13:52 被阅读0次

1.nosql:非关系型数据库

1.1分类

  • 键值存储数据库:特定的键指向特定的数据,如redis、Voldemor、Oracle BDB。
  • 列存储数据库:一个键指向多个列,用来应对分布式存储的海量数据,HBase、Riak。
  • 文档型数据库:MongoDB、CouchDB
  • 图形数据库:比如用来存储人际关系网络,Neo4J、InfoCrid、Infinite Graph

2.CAP

2.1 CAP是什么

  • C(Consistency强一致性):系统在执行过某项操作后仍然处于一致的状态。直接的说就是更新操作执行成功后所有的用户都应该读到最新的值。用户A改了某个数据的值,用户B去读数据,必须要读到A修改后的值。

  • A(Availability可用性):每一个操作总是能够在一定的时间内返回结果。简单的说就是,用户访问数据库必须有回应,数据库不能卡死或崩掉。

  • P(Partition tolerance分区容错性):指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通信)分离的系统也能够正常运行。简单的说,数据库中的服务器节点需要相互通信,保证彼此的数据都是一致的。当某一个节点和其他的节点断开了,他依然要能够运行(这时它本地保存的数据也许就和其他的节点慢慢的不一样了)

2.2 CAP理论

一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个要求,最多只能同时较好的满足其中的两个。

为什么不能同时满足3个呢?因为在逻辑上就会矛盾。
比如:
某一个数据库节点s1,由于网络分片导致s1和其他节点之间所有的通讯都断开了,用户A去更新数据库中的数据X,然后用户B去从s1中读取数据X的值(按照P的要求,s1需要可以继续运行),这时候读到的数据X就不会是最新的了,就无法满足C的要求。

此时,可以选择:

  • 放弃C:不要强一致性,数据就不要最新的。
  • 放弃A:数据库暂时不给返回数据X的值,等到s1恢复了通信,数据X一致了以后再应答。
  • 放弃P:不要搞分区,就搞一台机器。

三类:

CAP
  • CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强。传统Oracle、mysql数据库。
  • CP-满足一致性,分区容错的系统,通常可用性不是特别高。redis、mongodb
  • AP-满足可用性,分区容错性的系统,通常可能对一致性要求低。Tokyo Cabinet、SimpleDB、couchDB、Riak。

3. ACID&BASE

3.1 传统SQL的ACID:

传统的SQL数据库的事务通常都是支持ACID的强事务机制:

  • A代表原子性,即在事务中执行多个操作是原子性的,要么事务中的操作全部执行,要么一个都不执行;
  • C代表一致性,即保证进行事务的过程中整个数据加的状态是一致的,不会出现数据花掉的情况;
  • I代表隔离性,即两个事务不会相互影响,覆盖彼此数据等;
  • D表示持久化,即事务一但完成,那么数据应该是被写到安全的,持久化存储的设备上(比如磁盘)

3.2 nosql中的BASE:

BASE其实就是下面三个术语的缩写:

  • 基本可用(Basically Available)
  • 软性事务(Soft state)
  • 最终一致(Eventually consistent)

番外:分布式&集群

  • 分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过RPC/RMI之间通信和调用,对外提供服务和组内协作。

  • 集群:不同的多台服务器上面部署相同的模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

参考文章:https://blog.csdn.net/zxc123e/article/details/78366974

相关文章

  • nosql&数据库CAP

    1.nosql:非关系型数据库 1.1分类 键值存储数据库:特定的键指向特定的数据,如redis、Voldemor...

  • 数据库技术汇总

    数据库技术的分类,大的方向上可以分为关系型数据库和非关系型数据库: 1. CAP定理 CAP定理指出对一个分布式计...

  • MongoDB的事务、ACID和一致性

    在前一篇《理解数据库的事务,ACID,CAP和一致性》我已经将数据库的一些基本概念包括事务,ACID,CAP,一致...

  • 1、分布式基础之CAP和BASE理论

    ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸。...

  • 分布式事务

    本质上来说,分布式事务就是为了保证不同数据库的数据一致性。 1. 分布式理论 1.1. CAP定律 CAP指的是:...

  • CAP定理(CAP theorem)

    CAP定理(CAP theorem)在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理...

  • GeekBand C++系统设计与实践 第二周

    4.搭建大规模可扩展系统 大纲 分布式系统 数据库系统 经典架构 设计原则:CAP理论 一致性介绍 关系型数据库 ...

  • CAP到底是什么鬼?

    CAP到底是什么鬼? CAP理论 解释CAP原理 加深理解 蚂蚁金服OceanBase 据说已经打破CAP?? ...

  • Java面试题系列(十)——Redis

    1. 分布式数据库的CAP原理 Consistency:强一致性 Availability:可用性 Partit...

  • CAP理论和细节

    第74篇 极客时间《从0开始学架构》课程笔记。 什么是CAP? CAP是指CAP 定理(CAP theorem),...

网友评论

      本文标题:nosql&数据库CAP

      本文链接:https://www.haomeiwen.com/subject/wgymcqtx.html