一、什么是 NoSQL?
### --- NoSQL(NoSQL = Not Only SQL )
~~~ 意为反 SQL 运动,是一项全新的数据库革命性运动,
~~~ 2000 年前就有人提出,发展至 2009 年趋势越发高涨。
~~~ 它是指运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,
~~~ 这一概念无疑是一种全新的思维的注入。
~~~ 随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,
~~~ 特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,
~~~ 暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
~~~ NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,
~~~ 尤其是大数据应用难题。
分类 | Examples 举例 | 典型应用场景 | 数据模型 | 优点 |
键值 (key-value) | Tokyo Cabinet/Tyrant,Redis,Voldemort,Oracle BDB | 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 | Key 指 向 Value的键值对,通常用hashtable 来实现 | 查找速度快 |
列存储数据库 | Cassandra, HBase,Riak | 分布式的文件系统 | 以列簇式存储,将同一列数据存在一起 | 查找速度快,可扩展性强,更容易进行分布式扩展 |
文档型数据库 | CouchDB MongoDb | Web 应 用 ( 与Key-Value 类似,Value 是结构化的,不同的是数据库能够了解 Value 的内容) | Key-Value 对应的键值对,Value 为结构化数据 | 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 |
图形 (Graph数据库 | Neo4J, InfoGrid InfiniteGraph | 社交网络,推荐系统等。专注于构建关系图谱 | 图结构 | 利用图结构相关算法。比如最短路径寻址,N 度关系查找等 |
二、NoSQL 的特性?
### --- NoSQL 的特性?
~~~ NoSQL 是 key-value 形式存储,和传统的关系型数据库不一样,
~~~ 不一定遵循传统数据库的一些基本要求,
~~~ 比如说遵循 SQL 标准、ACID 属性、表结构等等。
### --- 这类数据库主要有以下特点:
~~~ 非关系型的、分布式、开源的、水平可扩展的
~~~ 处理超大量数据
~~~ 击碎了性能瓶颈
~~~ 对数据高并发读写
~~~ 对#海量数据的高效率存储和访问
~~~ 对数据的#高扩展性和高可用性
三、什么是 Redis?
![](https://i-blog.csdnimg.cn/blog_migrate/0effe61cab5af2dedcea8cc33ae0b553.png)
### --- 什么是 Redis?
~~~ Redis 是一个开源的,先进的 key-value 存储。它通常被称为数据结构服务器,
~~~ 因为键可以包含string(字符串)、hash(哈希)、list(链表)、
~~~ set(集合)和 zset(sorted-set--有序集合)。
~~~ 这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作。
~~~ Redis 和 Memcached 类似,它支持存储的 value 类型相对更多,
~~~ 与 memcached 一样,为了保证效率,数据都是缓存在内存中,
~~~ 区别是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,
~~~ 并且在此基础上实现了 master-slave(主从)同步。