一、NoSQL
1.1、NoSQL引言
NoSQL( Not Only SQL ),意即不仅仅是SQL, 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。
1.2、为什么是NoSQL
随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。如商城网站中对商品数据频繁查询、对热搜商品的排行统计、订单超时问题、以及微信朋友圈(音频,视频)存储等相关使用传统的关系型数据库实现就显得非常复杂,虽然能实现相应功能但是在性能上却不是那么乐观。nosql这个技术门类的出现,更好地解决了这些问题,它告诉了世界不仅仅是sql。
1.3、NoSQL的四大分类
1.3.1、键值(Key-Value)存储数据库
1.3.1.1、说明
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
1.3.1.2、特点
- Key/value模型对于IT系统来说的优势在于简单、易部署。
- 如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
1.3.1.3、相关产品
- Tokyo Cabinet/Tyrant,
- Redis
- SSDB
- Voldemort
- Oracle BDB
1.3.2、列存储数据库
1.3.2.1、说明
这部分数据库通常是用来应对分布式存储的海量数据。
1.3.2.2、特点
键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
1.3.2.3、相关产品
- Cassandra
- HBase
- Riak.
1.3.3、文档型数据库
1.3.3.1、说明
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。
1.3.3.2、特点
以文档形式存储。
1.3.3.3、相关产品
- MongoDB
- CouchDB
- MongoDb(4.x)
- SequoiaDB(国内)
1.3.4、图形(Graph)数据库
1.3.4.1、特点
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
1.3.4.2、相关产品
- Neo4J
- InfoGrid
- Infinite Graph
1.4、NoSQL应用场景
- 数据模型比较简单
- 需要灵活性更强的IT系统
- 对数据库性能要求较高
- 不需要高度的数据一致性
二、Redis入门
2.1、概述
redis是一个内存型的数据库