先了解NoSQL的知识,方便后面的Redis学习
1. 入门概述
1.1 为什么使用NoSQL
数据量的激增,传统的关系型数据库无法支撑传统的业务,需要使用NoSQL来解决
1.2 NoSQL概述
NoSQL = (not only SQL),意思为“不仅仅是SQL”,泛指非关系型数据库
1.3 NoSQL特点
- (1)易拓展:数据之间无关系,变得容易拓展
- (2)大数据量高性能:由于NoSQL的数据库结构简单,可以存储大量数据。NoSQL的cache时纪录级,表更新并不会立马失效,性能较好。
- (3)多样灵活的数据模型:NoSQL无需事先建立存储字段,可以随时自定义字段,十分灵活
1.4 NoSQL使用
推荐三种NoSQL
- (1)Mongdb:最像关系型数据库的非关系数据库
- (2)Memcache:高速缓存
- (3)Redis:存储数据类型丰富
2. 3V+3高
2.1 大数据时代的3V
- (1)海量Volume
- (2)多样Variety
- (3)实时Velocity
2.2 互联网需求的3高
- (1)高并发
- (2)高可扩
- (3)高性能
3. NoSQL数据模型简介
使用BSON来表示,BSON = Binary JSON,和JSON一样,支持内嵌的文档对象和数组对象
- 聚合模型:
- KV键值对
- BSON
- 列族
- 图形
4. NoSQL数据库的四大分类
- (1)KV键值对:Berkeley+Redis、Redis+Tair、Memcache+Redis
- (2)文档型数据库(BOSN格式比较多):CouchDB、MongoDB
- (3)列存储数据库:Cassandra、HBase
- (4)图关系数据库:Neo4J、InfoGrid
5. 分布式数据库中CAP原理
5.1 传统ACID
- A:Atomicity(原子性)
- C:Consistency(一致性)
- I:Isolation(独立性)
- D:Durability(持久性)
5.2 NoSQL的CAP
- C:Consistency(强一致性)
- A:Availability(可用性)
- P:Partition tolerance(分区容错性)
5.3 CAP的3进2
- CAP理论在分布式存储系统中,最多只能实现上面两点
- CA:传统数据库
- AP:大多数网站架构的选择
- CP:Redis、MongoDB
- 分区容忍性是必须要实现的,所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点
5.4 BASE
- BASE是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方法
- BA:Basically Available(基本可用)
- S:Soft state(软状态)
- E:Eventutally consistent(最终一致)