5.3 NoSQL的四大类型
概念
nosql数据库
分为四类数据库:键值,列族,文档,图
(代表)
举例:
键值数据库:
用的多:redis
云数据库:SimpleDB
应用:涉及频繁读写,如:会话,配置文件,参数,购物车等存储配置和用户数据信息等移动应用
优点:扩展性好,灵活,大量写操作性能高
缺点:无法存储结构化信息;条件查询效率低
不适用:键值数据没有用值来查找;不反映关系;不支持事务
理想的缓冲层解决方案,用的比较多Redis(比Mecmcached性能高),提高响应web速度
列族数据库:
HBase:管家
Cssandra:p2p
应用:分布式数据存储与管理;数量分布于多个数据中心的应用程序;拥有动态字段的应用程序
优点:
查找速度快,
缺点:功能少不支持强事务一致性
不适用:
文档数据库和键值数据库的区别?
文档数据库:JSON数据格式
可以完整包含在一个文档里,锁定一个文档即可,比关系数据库有更好的并发性。
MongoDB,
应用:存储、索引并管理面向文档的数据或者类似的半结构化数据。
优点:
不适用:不支持文档间的事物
云数据库:百度云
图数据库:
应用:Neo4j
数据模型:图结构
不是只存放图,是图结构
典型应用:
不适应:
只适用以上情况
redis:模型相对简单,数据库伸缩性好
5.4 NoSQL的三大基石
简答
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:强一致性
5.5 从NoSQL到NewSQL数据库
课7:5.5OldSql:一种架构支持多种应用场景
NewSql:
应用场景:
分析:NewSql
事务:OldSql
互联网
NewSql同时具备两者优点:
水平可扩展性,强一致性,事务一致性,支持查询,支持海量数据存储
产品分类图:
5.6 文档数据库MongoDB
课8: 5.6 文档数据库MongoDB
文档数据库介于关系数据库和NoSql之间
热门
MongoDB简介:
C++写的,开源系统
在高负载的,
文档类型BSON,结构类似JSON
特点:
操作比较简单容易
可以针对任何属性的索引实现更快的排序
水平可扩展性
丰富的查询表达式,
替换已完成文档指定的字段
批量处理,聚合
术语:
每一行记录都是一个文档
文档集合就是表
实例:
关系数据库需要多表连接查询
文档数据库散布在多个表的数据用一个文档即可锁定
数据库:
文档是一个键值
服务端:
客户端
集合:
集合就是文档组,类似于RDMS中表格
没有固定结构,可以对集合插入不同格式和类型的数据
数据类型很多
安装:
shell访问:
连接服务器
登陆
创建数据库:(不用创建)
创建集合(编程时需要单独创建)
插入文档
JAVA访问:
默认端口号:27017
插入文档