5.3 Nosql的四大类型
概念
nosql数据库
分为四类数据库:键值,列族,文档,图
(代表)
举例:
键值数据库:
用的多:redis
云数据库:SimpleDB
应用:涉及频繁读写,如:会话,配置文件,参数,购物车等存储配置和用户数据信息等移动应用
优点:扩展性好,灵活,大量写操作性能高
缺点:无法存储结构化信息;条件查询效率低
不适用:键值数据没有用值来查找;不反映关系;不支持事务
理想的缓冲层解决方案,用的比较多Redis(比Mecmcached性能高),提高响应web速度
列族数据库:
HBase:管家
Cssandra:p2p
应用:分布式数据存储与管理;数量分布于多个数据中心的应用程序;拥有动态字段的应用程序
优点:
查找速度快,
缺点:功能少不支持强事务一致性
不适用:
nosql数据库
分为四类数据库:键值,列族,文档,图
(代表)
举例:
键值数据库:
用的多:redis
云数据库:SimpleDB
应用:涉及频繁读写,如:会话,配置文件,参数,购物车等存储配置和用户数据信息等移动应用
优点:扩展性好,灵活,大量写操作性能高
缺点:无法存储结构化信息;条件查询效率低
不适用:键值数据没有用值来查找;不反映关系;不支持事务
理想的缓冲层解决方案,用的比较多Redis(比Mecmcached性能高),提高响应web速度
列族数据库:
HBase:管家
Cssandra:p2p
应用:分布式数据存储与管理;数量分布于多个数据中心的应用程序;拥有动态字段的应用程序
优点:
查找速度快,
缺点:功能少不支持强事务一致性
不适用:
5.4 Nosql的三大基石
简答
cap,Base,
cap理论(帽子理论):
consistency:一致性
availability:可用性
partition tolerance:分区容忍性
牺牲一致性换取可用性的实例:
面对Cap问题有以下选择:
CA(传统数据库:MysqL)
CP
AP
cap,Base,
cap理论(帽子理论):
consistency:一致性
availability:可用性
partition tolerance:分区容忍性
牺牲一致性换取可用性的实例:
面对Cap问题有以下选择:
CA(传统数据库:MysqL)
CP
AP
课6:
BASE:Nosql基石之一
ACID是关系数据库重要特性
基本可用(Basically Available):
软状态(Soft-State):
数据在一定时间上滞后
最终一致性(Eventual consistency):弱一致性的特例
可分为:
因果一致性
读己之所写一致性:
单调读一致性:
会话一致性:
单调写一致性:
实现各种类型的一致性:
NWR
N
W
R
W+R大于N:强一致性
最小设定:
W+R小于等于N:弱一致性
N2,W1,R1
一般保证强一致性:N大于等于3
HDFS:强一致性
BASE:Nosql基石之一
ACID是关系数据库重要特性
基本可用(Basically Available):
软状态(Soft-State):
数据在一定时间上滞后
最终一致性(Eventual consistency):弱一致性的特例
可分为:
因果一致性
读己之所写一致性:
单调读一致性:
会话一致性:
单调写一致性:
实现各种类型的一致性:
NWR
N
W
R
W+R大于N:强一致性
最小设定:
W+R小于等于N:弱一致性
N2,W1,R1
一般保证强一致性:N大于等于3
HDFS:强一致性
课7:5.5
Oldsql:一种架构支持多种应用场景
Newsql:
应用场景:
分析:Newsql
事务:Oldsql
互联网
Newsql同时具备两者优点:
水平可扩展性,强一致性,事务一致性,支持查询,支持海量数据存储
产品分类图:
Oldsql:一种架构支持多种应用场景
Newsql:
应用场景:
分析:Newsql
事务:Oldsql
互联网
Newsql同时具备两者优点:
水平可扩展性,强一致性,事务一致性,支持查询,支持海量数据存储
产品分类图:
5.6 文档数据库MongoDB
课8: 5.6 文档数据库MongoDB 文档数据库介于关系数据库和Nosql之间 热门 MongoDB简介: C++写的,开源系统 在高负载的, 文档类型BSON,结构类似JSON 特点: 操作比较简单容易 可以针对任何属性的索引实现更快的排序 水平可扩展性 丰富的查询表达式, 替换已完成文档指定的字段 批量处理,聚合 术语: 每一行记录都是一个文档 文档集合就是表 实例: 关系数据库需要多表连接查询 文档数据库散布在多个表的数据用一个文档即可锁定 数据库: 文档是一个键值 服务端: 客户端 集合: 集合就是文档组,类似于RDMS中表格 没有固定结构,可以对集合插入不同格式和类型的数据 数据类型很多 安装: shell访问: 连接服务器 登陆 创建数据库:(不用创建) 创建集合(编程时需要单独创建) 插入文档 JAVA访问: 默认端口号:27017 插入文档