一、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,存储特定的数据