非关系型数据库NoSQL
1.CAP理论和Base特性
1.1CAP理论
简单的说对于一个分布式系统要满足一致性 可用性和分区容错性
一致性:系统在执行了某些操作之后仍然可以处于一个一致性的状态
可用性:是指对数据的所有操作都有成功的返回 任何请求不管成功还是失败都能有响应
分区容错性:在网络发生故障的时候 在网络连接上一些节点出现问题故障 使得原本的联通的网络变成了一块一块的分区 若系统继续工作这些分区是可容忍的
1.2ACID
原子性:事务的操作要么都做都不做
一致性:一个事务的执行结果必须从一个一致性状态变成另外一个一致性的状态
隔离性:一个事务的执行不能被其他的事务干扰 并发事务在执行的时候可能对同一数据进行操作这些事务的操作应该不会相互干扰是相互隔离的
持久性:一个事务一旦提交 他对数据库的改变必然是永久的 及即使系统出现故障也是如此的。
1.3BASE理论
由于CAP理论的存在 为了提高性能出现了ACID的变种BASE 一个弱一致性的理论 只要求最终是一致性的
BA基本可用
S:软状态 soft state ,无连接的
E:最终一致性,最终整个系统看到的数据是一致性的
2.各种nosql数据库的分类和特点
2.1NoSQL分类
文档:
mongodb couchDB
wen应用 存储面向文档的半结构化数据
结构灵活 可以根据value设置索引
缺乏统一的查询语法 无事务
键值:
Redis
内容缓存 会话 配置文件 参数等
扩展性好 灵活 大量操作性能高
数据无结构化 通常被当作字符串或者二进制文件 通过键查询值
列存储:
hbase
分布式数据存储和管理
可扩展性强 查询速度快 复杂性底
功能局限不支持事务
图存储
Neo4j
社交网络 推荐系统 专注于构建系统图谱
支持复杂的图形算法
复杂性高 只能支持一定的数据规模