共计 716 个字符,预计需要花费 2 分钟才能阅读完成。
NoSQL学习
NoSQL:Not Only SQL
1.1 NoSQL起因:
大数据时代的3V :海量Volume、多样Variety、实时Velocity 互联网需求的三高:高并发、高可扩、高性能
1.2 NoSQL数据模型:
- KV键值对:Redis
- 文档型数据库(以BSON为主):MongoDB
- 列存储数据库:HBase、分布式文件系统、Hadoop
- 图关系数据库:不是放图形,放的是朋友圈社交网络。专注于构建关系图谱。Neo4J、InfoGird
1.3 NoSQL数据原理CAP+BASE
1.3.1 CAP
传统的关系型数据库ACID属性:Atomicity(原子性)、Consistency(一致性)、Isolation(独立性)、Durability(持久性)。NoSQL则是 CAP定理:
- C:Consistency:强一致性
- A:Availability:高可用性
- P:Partition tolerance:分区容错性
CAP定理的核心:一个分布式系统,不能同时满足三个属性,最多同时满足两个,CA、CP、AP
- CA:RDBMS、Oracle
- CP:MongoDB、Redis、HBase
- AP:CouchDB //大多数网站架构的选择:弱一致性+高可用+分区容错性
对于分布式系统 P(分区容错性)是必须满足的。所以只能是CP和AP。
1.3.2 BASE
BASE就是为了解决关系数据库的强一致性引起的问题而导致可用性降低而提出的解决方案。 BASe是如下术语缩写:
- 基本可用(Basically Available)
- 软状态 (Soft state)
- 最终一致 (Eventually consistent)
他的思想是通过让系统放松某一时刻的数据一致性换来系统整体伸缩性和性能上的改观。
正文完