NoSQL数据类型、数据库分类及原理
当今大数据时代的数据量体现在数据的海量性(Volume)多样性(Variety)实时性(Velocity),那么当下的互联网公司就要应对高并发,高可控,以及高性能。
一、NoSQL数据模型
聚合模型
1)k-v键值
2)Bson
3)列族:按列存储数据,最大特点是方便存储结构化和办结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。
4)图形
二、四者对比
三、分布式数据库中CAP原理CAP+BASE
1. 传统的ACID
1)A Atomicity 原子性
2)C Consistency 一致性
3)I Isolation 独立性(隔离性)
4)D Durability 持久性
2.CAP
1)C Consistency 强一致性
2)A Availability 可用性
3)P Partition tolerance 分区容错性
CAP核心理论,一个分布式系统不可能同时满足以上三个需求,最多同时满足两个,因此,根据CAP原理将NoSQL数据库分成了三大类:
CA:单点集群,满足一致性和可用性,通常在可扩展性上不太强大 (传统型关系型数据库:Oracle数据库)
CP:满足一致性和分区容错性,通常性能不是特别高 (Redis,MongoDB)
AP:满足可用性和分区容错性,通常对一致性要求低 (大多数网站架构选择,如双11促销)
3.BASE
BASE就是为了解决关系数据库强一致性引起的可用性降低提出的解决方案。
BASE其实是下面三个术语的缩写
基本可用 Basically Available
软状态 Soft state
最终一致性 Eventually consistent
它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的改观,在大型系统中,往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们必须采用另外一种方式来完成。
四、分布式和集群
分布式:在不同的多台服务器上部署不同的服务模块,它们之间通过Rpc,Rmi之间通信和调用,对外提供服务和组内协作
集群:不同的多台服务器上部署相同的服务模块,通过分布式调度软件进行统一调度,对外提供服务及访问。