NoSQL
用户个人信息,社交网络、地理位置。用户自己的文件增长。NoSQL可以处理以上情况。
NoSQL(Not Only SQL)
泛指非关系型数据库,随着Web2.0互联网的诞生,传统的关系数据库很难解决。
关系数据库:行、列、表
流数据类型不需要固定的格式,不需要多余的操作就可以横向扩展
NoSQL特点
-
方便扩展(数据之间没有关系,解耦,即数据之间没有耦合性,利用解耦可以方便操作)
-
大数据量高性能(redis每秒读11万次,写8万次,NoSQL的缓存是一种细粒度的缓存)
-
多样的数据类型,不需要事先设置数据库。
-
传统的关系数据库与NoSQL的区别
传统的关系数据库 - 结构化组织(行、列、表) - 数据和关系都存储在单独的表中 - 结构化查询SQL - 数据操作、数据定义语言 - 严格的一致性 - 基础的事务
NoSQL - 不仅仅是数据 - 没有固定的查询语言 - 有很多存储方式(键值对存储、列存储、文档存储,图形数据库) - 最终一致性(最终结果一样就行) - CAP定理和BASE理论 - 高性能、高可用、高可扩展
了解大数据3V3高
3V主要是描述问题
- 海量Volume
- 多样Variety
- 实时Velocity
3高主要是对程序要求:
- 高并发
- 高可扩
- 高性能
NoSQL的四大分类
KV键值对:
- 新浪:Redis
- 美团:Redis+Tair
- 阿里、百度:Redis+memecache
文档型数据库(bson格式和json一样):
- MongoDB(一般必须掌握)
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来存储大量文档
- MongoDB是一个介于关系型数据库和非关系型数据库的交集。最像关系型数据库的非关系型数据库
列存储数据库
- HBase
- 分布式文件数据库
图关系数据库