[学习笔记] Redis数据库之NoSQL概述

# 学习 # · 2021-10-14

数据库基础

1、关系型数据库的特点:

  • a、用的都是表结构,比较容易理解。
  • b、使用的是通用的SQL语言,使用方便。
  • c、易于维护:丰富的完整性约束大大减低了数据冗余和数据不一致的可能性。

2、大数据时代下关系型数据库的不足:

  • a、无法适应多变的数据结构。
  • b、高并发读写的瓶颈:高并发读写能力较差。
  • c、可扩展性的限制:固定的表结构,灵活性欠缺。

3、数据处理方式:

  • a、集中式:指数据库中的数据集中存储在一台服务器上,数据的处理也集中在一台一台机器上完成。
  • b、分布式:指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。

NoSQL

1、NoSQL(Not Only SQL):非关系型的数据库,也称为分布式数据库。NoSQL用于超大规模数据的存储。

2、分布式数据库的特征:

  • a、高可扩展性:分布式数据库必须具有高可扩展性,能够动态地增添存储节点以实现存储容量的线性扩展。
  • b、高并发性:分布式数据库必须及时响应大规模用户的读/写请求,能对海量数据进行随机读、写。
  • c、高可用性:分布式数据库必须提供容错机制,能够实现对数据的冗余备份,保证数据和服务的高度可靠性。

3、分布式数据库的特点:

  • a、模式自由:不需要定义表结构,数据表中的每条记录都可能有不同的属性和格式。
  • b、逆规范化:不遵循范式的要求,去掉完整性约束,减少表之间的依赖。
  • c、多分区存储:数据进行分区,将数据分散在不同的节点上。
  • d、可扩展性强:可在系统运行过程中动态增删节点,数据平衡移动。
  • e、多副本异步复制:一个数据分片复制为多份,并复制到多个节点上。
  • f、软事务:不能完全满足事务的ACID特性,保证事务的最终一致性。

4、分布式数据库的四大分类:

  • a、键值数据库:

    • Ⅰ、相关产品:Redis、Memcached、Riak、SimpleDB等。
    • Ⅱ、数据模型:key-value。
    • Ⅲ、典型应用:内容缓存、会话、配置文件、参数、购物车等。
    • Ⅳ、优点:扩展性好、灵活性强、大量写操作时性能高。
    • Ⅴ、缺点:无法存储结构化信息、条件查询效率低。
  • b、列族数据库:

    • Ⅰ、相关产品:HBase、BigTable、hadoopDB等。
    • Ⅱ、数据模型:以列族式存储,将同一列数据存在一起。
    • Ⅲ、典型应用:分布式文件系统。
    • Ⅳ、优点:查找速度快、可扩展性强、更容易进行分布式扩展。
    • Ⅴ、缺点:功能相对局限,大部分都不支持强事务一致性。
  • c、文档数据库:

    • Ⅰ、相关产品:MongoDB、CouchDB等。
    • Ⅱ、数据模型:key-value(结构化数据)。
    • Ⅲ、典型应用:存储、索引并管理面向文档数据或类似半结构数据化数据。
    • Ⅳ、优点:性能好、灵活性高、复杂性低、数据结构零活。
    • Ⅴ、缺点:缺乏统一性的查询语句。
  • d、图形数据库:

    • Ⅰ、相关产品:Neo4j、GraphDB等。
    • Ⅱ、数据模型:图结构。
    • Ⅲ、典型应用:大量复杂、互连接、低结构化的图结构。
    • Ⅳ、优点:灵活性高、支持复杂的图算法、可以用来构建复杂的关系图谱。
    • Ⅴ、缺点:缺乏统一的查询语句。

CAP定理

1、CAP定理(CAP theorem):又被称作布鲁尔定理(Brewer's theorem)。

2、CAP定理的内容:

  • a、一致性(consistency):指任何一个读操作总是能督导之前完成的写操作的结果。所有节点在同一时间具有相同的数据。
  • b、可用性(availability):指每个请求都能在确定时间内返回一个响应,无论请求是否成功。
  • c、分区容忍性(partition tolerance):指当出现网络分区情况时,分离的系统也能正常运行,系统中任意信息的丢失或失败都不会影响系统的继续运作。

3、CAP定理的核心:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。

CA:单点集群,满足一致性、可用性的系统,最简单的做法是把所有与事务相关的内容都放到同一台机器上。

CP:满足一致性、分区容忍性的系统,当出现网络分区的情况时,受影响的服务需要等待数据一致,在等待期间无法对外提供服务。

AP:满足可用性、分区容忍性的系统,允许系统返回不一致的数据。


ACID与BASE

1、ACID:数据库事务正确执行的四个基本要素。

2、ACID的四个基本要素:

  • a、原子性(Atomicity):一个事务的所有系列操作步骤被看成是一个动作,所有的步骤要么全部完成要么全部不完成。
  • b、一致性(Consistency):事务执行前后,数据库的状态都满足所有的完整性约束。
  • c、隔离性(Isoiation):并发执行的事务是隔离的,保证多个事务互不影响,一个未完成的事务不会影响到另一个未完成的事务。
  • d、持久性(Durability):一个事务一旦提交,它对数据库中数据的改变是永久的。

3、BASE:解决CAP理论一致性和可用性之前的权衡问题。

4、BASE的三个基本要素:

  • a、基本可用性(Basically Available):分布式系统在出现故障的时候,允许损失部分可用性。
  • b、软状态(Softstate):允许系统数据存在中间状态(如不同节点数据同步时延时),不影响系统的整体可用性。
  • c、最终一致性(Eventuallyconsistent):要求系统数据副本最终能够一致,而不需要实时保证副本一致性。

5、ACID与BASE:

  • a、ACID和BASE代表了在一致性和可用性两点之间进行选择的设计哲学。
  • b、ACID强调一致性被关系数据库使用,BASE强调可用性被大多数NoSQL使用。
如无特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/315/

评论