前言:
随着互联网的不断发展(3v+3高),电商网站,社交平台,金融平台等服务领域越来越大,存储的数据也是越来越多,对数据的要求更是越来越高。
传统的垂直框架+RDBMS已经无法满足服务需求。这是各种大牛开始想到,读写分离,主从复制,分库分表。对数据库的压力各种减轻。这
时候就有了我们的Nosql。
大数据的3V:
- 海量volume
- 多样variety
- 实时velocity
互联网的三高:
- 高并发
- 高可扩
- 高性能
什么是Nosql:
not only sql (非关系型数据库)
为什么要使用nosql,传统的RDBMS(关系型数据库)对比:
RDBMS:(mysql,Oracle)
- 高度组织化结构化数据
- 结构化查询语言(SQL)
- 数据和关系都存储在单独的表中
- 数据操作语言,数据定义语言
- 严格的一致性
- 基础的事务处理
***mysql5.1之前是MyISM(锁表),之后是InnoDB(锁行)。innoDB更好的支持高并发。
NoSQL:( redis ,MongoDB)
- 不仅仅是SQL
- 没有生命性查询语言
- 没有预定义的模式
- 键值对,列存储,文档存储,图形关系存储
- 最终一致性,非ACID熟悉
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用,可伸缩性
Nosql的特点:
(1)易扩展 (2)大数据量高性能 (3)多样灵活的数据关系
Nosql四大分类:
- KV键值:redis
- 文档型数据库:MongoDB
- 列存储数据库:HBase
- 图关系数据库:Neo4j,InfoGrid
这些类型的数据存储不需要固定的模式。无需多余操作就可以横向扩展。