文章目录

  • NoSQL的优点
  • 开源的NoSQL数据库软件
  • 多数据源
  • NoSQL的数据模型
  • NoSQL数据库的四大分类
  • KV键值对
  • 文档型数据库
  • 列存储
  • 图形数据库
  • 四者比较
  • CAP+BASE
  • 传统的ACID
  • CAP
  • BASE
  • 分布式+集群


随着数据量的激增,传统的关系型数据库已经难以支撑,于是非关系型数据库便得到了迅速的发展。NoSQL泛指非关系型数据库。

NoSQL(Not only SQL),泛指非关系型数据库。

NoSQL的优点

  1. 易扩展
    NoSQL数据库去掉了关系型数据库的关系型特性,数据之间无关系,更易于扩展。
  2. 大数据量,高性能
    具有非常高的读写性能,这得益于其无关系性,数据库的结构简单。
  3. 多样灵活的数据模型
    NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。

开源的NoSQL数据库软件

  1. Membase
  2. MongoDB
  3. Redis

多数据源

  1. 不常改动的数据,如商品基本信息:关系型数据库(MySQL)
  2. 图片数据:分布式文件系统
  3. 热频词:redis
  4. 多文字信息,如评论:MongoDB
    Java程序将面对着多种数据库,阿里公司提出了统一数据平台服务层UDSL,即封装一个统一的接口

NoSQL的数据模型

聚合模型:KV键值对、Bson、列族、图形

NoSQL数据库的四大分类

KV键值对

键值对,哈希表

文档型数据库

处理网页等复杂数据时常使用,MongoDB

列存储

分布式存储的海量数据。键仍然存在,但是指向多个列。

图形数据库

图关系来表示复杂的关系

四者比较

nosql解决方案 nosql介绍_nosql解决方案

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之间的通信和调用,对外提供服务和组内协作。(分工合作)
集群
不同的多台服务器上面部署相同的服务模块,通过分布式的调度软件进行统一的调度,对外提供服务和访问。(人多力量大)