一、NoSQL
一)NoSQL数据库
NoSQL:Not Only SQL,不仅仅是SQL,泛指非关系型数据库
特点:
- 不遵循SQL标准
- 不支持ACID(原子性/不可分割性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)
- 远超于SQL的性能
适用场景:
- 对数据高并发的读写
- 海量数据的读写
- 对数据高扩展性
不适用场景:
- 需要事务(ACID)支持
- 基于SQL的结构化查询存储、处理复杂的关系、需要即席查询
二)NoSQL家族
1)Mencahed
很早出现的NoSQL数据库
数据都在内存中,一般不持久化
支持简单的key-value模式,数据类型支持单一
一般是作为缓存数据库辅助持久化的数据库
2)Redis
几乎覆盖了Memcached的绝大部分功能
数据都在内存中,支持持久化,主要用作备份恢复
支持丰富的数据类型,例如 string 、 list 、 set、zset、hash等
一般是作为缓存数据库辅助持久化的数据库
3)mongoDB
高性能、开源、模式自由的文档型数据库
数据都在内存中,如果内存不足,把不常用的数据保存到硬盘
虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能
支持二进制数据及大型对象
可以根据数据的特点替代RDBMS(关系数据库管理系统),成为独立的数据库,或配合RDBMS,存储特定的数据
多用于前端
4)HBase
Hadoop项目的数据库,主要用于对大量数据进行随机、实时的读写操作
能支持到数十亿行 × 百万列的数据表
5)Cassandra
用于管理由大量商用服务器构建起来的庞大集群上的海量数据集(PB级)
6)Neo4j
于图结构的数据库,一般用于构建社交网络、交通网络、地图等