文章目录
- NoSQL的优点
- 开源的NoSQL数据库软件
- 多数据源
- NoSQL的数据模型
- NoSQL数据库的四大分类
- KV键值对
- 文档型数据库
- 列存储
- 图形数据库
- 四者比较
- CAP+BASE
- 传统的ACID
- CAP
- BASE
- 分布式+集群
随着数据量的激增,传统的关系型数据库已经难以支撑,于是非关系型数据库便得到了迅速的发展。NoSQL泛指非关系型数据库。
NoSQL(Not only SQL),泛指非关系型数据库。
NoSQL的优点
- 易扩展
NoSQL数据库去掉了关系型数据库的关系型特性,数据之间无关系,更易于扩展。 - 大数据量,高性能
具有非常高的读写性能,这得益于其无关系性,数据库的结构简单。 - 多样灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。
开源的NoSQL数据库软件
- Membase
- MongoDB
- Redis
多数据源
- 不常改动的数据,如商品基本信息:关系型数据库(MySQL)
- 图片数据:分布式文件系统
- 热频词:redis
- 多文字信息,如评论:MongoDB
Java程序将面对着多种数据库,阿里公司提出了统一数据平台服务层UDSL,即封装一个统一的接口
NoSQL的数据模型
聚合模型:KV键值对、Bson、列族、图形
NoSQL数据库的四大分类
KV键值对
键值对,哈希表
文档型数据库
处理网页等复杂数据时常使用,MongoDB
列存储
分布式存储的海量数据。键仍然存在,但是指向多个列。
图形数据库
图关系来表示复杂的关系
四者比较
CAP+BASE
传统的ACID
A atomicity 原子性
C consistency 一致性
I isolation 独立性
D durability 持久性
CAP
C consistency 强一致性
A availability 可用性
P partition tolerance 分区容错性
在NoSQL中只能3选2,即不可能同时满足三个,最多只能满足两个。
CA:单点集群。满足一致性,可用性的系统通常在可扩展性上不太强大;RDBMS,传统的Oracle
CP:满足一致性,分区容错性的系统通常性能不是很好;MongoDB,HBase,Redis
AP:满足可用性,分区容错性的系统,通常可能对一致性要求低一些。CouchDB,Cassandra
对于分布式系统,其中P(分区容错性)是必须的。
AP为大多数网站架构的选择;
CP:Redis、MongoDB
BASE
BA basically available 基本可用
S soft state 软状态
E eventually consistent 最终一致
分布式+集群
分布式
不同的多台服务器上面部署不同的服务模块,他们之间通过Rpc/Rmi之间的通信和调用,对外提供服务和组内协作。(分工合作)
集群
不同的多台服务器上面部署相同的服务模块,通过分布式的调度软件进行统一的调度,对外提供服务和访问。(人多力量大)