NoSQL的四大类型
- 键值数据库 如redis
- 列式存储数据库 如HBase
- 图数据库 如Neo4J
- 文档数据库 如MangoDB
NoSQL的三大基石
- CAP
- Consistency 一致性:任何一个读操作总能读到之前完成的写操作的结果。
- Availability 可用性:快速获取数据,在一定时间内返回操作结果保证每个操作不管成功还是失败都有响应。
- Partition tolerance 分区容忍性: 指出现网络分区的情况时(即系统中某些节点无法和其他节点进行通信)分离的系统也能正常工作。
一个分布式系统不能同时满足cap,最多同时满足两个
选择CA:Mysql,sqlServer,Postgresql
选择 AP:Cassandra
选择CP:Neo4J HBase Redis
- BASE
Bassically Available Soft state和eventual consistency简写
Base(碱)在NoSql中和关系型数据库中的ACID是对应关系。- Bassically Available 基本可用
指一个分布式系统的一部分发生问题变得不可用的同时其他部分仍然可用,允许分区失败的情况。 - Soft-state 软状态
相对于 硬状态,硬状态是指在任意时刻数据库状态必须保持一致性,任意时刻数据库必须是正确的。 - eventual consistency最终一致性
一致性分强一致性和弱一致性,eventual consistency是弱一致性的一个特例。
HBase底层借助HDFS,是强一致性的。
软状态是指可以有一段时间不同步,具有一定的滞后性。
- Bassically Available 基本可用
- 最终一致性