Redis(一)------NoSQL
1、NoSQL
1.1 什么是NoSQL
-
NoSQL:Not Only SQL,不仅仅是SQL
-
关系型数据库包含表格、行、列
-
NoSQL泛指非关系型数据库,随着Web2.0互联网的诞生,传统的关系型数据库很难应对Web2.0时代,尤其是超大规模的高并发社区。暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展十分迅速,其中
Redis
是发展最快的 -
很多数据类型用户的个人信息、社交网络、地理位置、用户自己产生的数据、用户日志等。这些数据类型的存储不需要一个固定格式,爆发式增长,不需要多余操作就可以进行横向扩展
1.2 NoSQL的特点
- 方便扩展(数据之间没有关系)
- 大数据量高性能(Redis 1s写8万次,读取11万次,NoSQL的缓存记录是一种细粒度的缓存,性能会比较高)
- 数据类型多样(不需要事先设计数据库,随取随用)
1.3 比较RDBMS和NoSQL
- 传统RDBMS
- 结构化组织
- SQL
- 数据和关系都存在单独的表中
- 数据操作语言、数据定义语言
- 严格的一致性(ACID)
- 基础的事务
- …
- NoSQL
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储、列存储(mongDB)、文档存储、图形数据库
- 最终一致性
- CAP定理和BASE理论(例如:异地多活,保证整个服务器不会宕机)
- 高性能、高可用、高可扩
1.4 了解3V和3高
- 大数据时代的3V:主要是描述问题
- 海量Volume
- 多样Variety
- 实时Velocity
- 大数据时代的3高:主要是对程序的要求
- 高并发
- 高可扩(随时水平拆分,机器不够,可以扩展机器解决)
- 高性能
2、NoSQL四大分类
2.1 KV键值对
- 新浪:Redis
- 美团:Redis+Tair
- 阿里、百度:Redis+memcache
2.2 文档型数据库(bson格式和json一样)
- MongDB(需要掌握)
MongDB
,是一个基于分布式文件存储的数据库,由C++编写,主要用来处理大量的文档MongDB
,是一个介于关系型数据库和非关系型数据库中间的产品MongDB
,是非关系型数据库中功能最丰富,最像关系型数据库的
- ConthDB
2.3 列存储数据库
- HBase
- 分布式文件系统
2.4 图关系数据库
- 不是图形,存放的是关系,例如:朋友圈社交网络,广告推荐
- Neo4j
- InfoGrid