一、NoSQL概念
- NoSQL(Not Only SQL),意为“不仅仅是SQL”,泛指非关系型的数据库
- NoSQL不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力
二、NoSQL特点
- 不遵循SQL标准
- 不支持ACID(原子性、一致性、隔离性、持久性)
- 远超于SQL的性能
三、场景
一、适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
二、不适用的场景
- 需要事务支持
- 基于SQL的结构化查询存储,处理复杂的关系,需要即席查询
用不着SQL的和用了SQL也不行的情况,请考虑用NoSQL)
四、常见的NoSQL数据库
一、Memcache
- 很早出现的NoSQL数据库
- 数据都在内存中,一般不持久化
- 支持简单的key-value模式,支持类型单一
- 一般是作为缓存数据库辅助持久化的数据库
二、Redis
- 几乎覆盖了Memcahe的绝大部分功能
- 数据都在内存中,支持持久化,主要用作备份恢复
- 除了支持简单的key-value模式,还支持多种数据结构的存储,比如list、set、hash、zset等
- 一般是作为缓存数据库辅助持久化的数据库
三、MongoDB
- 高性能、开源、模式自由的文档型数据库
- 数据都在内存中,如果内存不足,把不常用的数据保存到硬盘
- 虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
- 支持二进制数据及大型对象
- 可以根据数据的特点替代RDBMS,成为独立的数据库。或者配合RDBMS,存储特定的数据