导读:本文主讲讲NoSQL,非关系型数据库的概念和主流NoSQL的对比
概念:
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。
前面的文章讲过,例如MySQL等关系型数据库遵循ACID规则,那什么是非关系型的数据库呢?NoSQL,指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。随着互联网的发展,我们的业务对与“读”和“写”的频率差距越来越大,由此诞生了便于迅速查询的非关系型的数据库。CAP定理(CAP theorem)指出,对于一个分布式计算系统来说,不可能同时满足以下三点:
- 一致性(Consistency) (所有节点在同一时间具有相同的数据)
- 可用性(Availability) (保证每个请求不管成功或者失败都有响应)
- 分隔容忍(Partition tolerance) (系统中任意信息的丢失或失败不会影响系统的继续运作)
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
- CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
- CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
- AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
由于设计目的的不同,所以NoSQL一般满足以下原则:
- Basically Available --基本可用
- Soft-state --软状态/柔性事务。 "Soft state" 可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的
- Eventually Consistency -- 最终一致性, 也是 ACID 的最终目的。
关系型数据库和非关系型数据库原则对比
主流非关系型数据库分类:
针对不同的储存对象,我们可以选择不同的数据库来存储,目前Redis是我们日常业务中最常用的非关系型数据库,所以下篇文章就主要讲讲redis。