为什么要使用Nosql
处于大数据时代,对于大数据一般数据库难以处理。
用户的个人的信息,社交网络,地理位置,用户自己产生的数据,用户日志等待爆发增长!
NoSQL = Not Only SQL(不仅仅是SQL)
泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展的最快的,而且是 我们当下必须要掌握的技术。
NoSQL特点
- 方便扩展(数据之间没有关系,很好扩展!)
- 大数据量高性能(Redis 一秒写8万次,读取11万,NoSQL是缓存记录级,是一种细粒度的缓存,性能会比较高!)
- 数据类型是多样型的!(不需要实现设计数据库!随取随用!)
传统的RDBMS(关系型数据库)
- 结构化组织
- Sql
- 数据和关系都存在单独的表中
- 操作操作,数据定义语言
- 严格的一致性
- 基础的事物
- 。。。
NoSQL
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社交关系)
- 最终一致性
- CAP原理和BASE
- 高性能,高可用,高可扩
- 。。。
大数据时代的3v和3高:
- 3V
- 海量 Volume
- 多样 Variety
- 实时 Velocity
- 3高
- 高并发
- 高可扩
- 高性能
真正在公司中的实践:NoSQL+RDBMS 一起使用才是最强的,阿里巴巴的架构演进。
NoSQL的四大分类
- 键值对:
- 新浪:Redis
- 美团:Redis+Tair
- 阿里、百度:Redis+memecache
- 文档型数据库(bson格式和json一样)
- MongoDB
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档!
- MongoDB是一个介于关系型数据库和非关系型数据中中间的产品!MongoDB是非关系型数据库中功能最丰富的,最像关系型数据库的!
- MongoDB
- 列存储数据库
- HBase
- 分布式文件系统
- 图关系数据库
- 他不是存图形的,放的是关系,比如:朋友圈社交网络,广告推荐!
- Neo4j,InfoGrid
- 四者对比:
(C:%5CUsers%5CAdministrator%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210303180424758.png#pic_center)]