📜  NoSQL中键值存储的特点

📅  最后修改于: 2022-05-13 01:57:02.277000             🧑  作者: Mango

NoSQL中键值存储的特点

在本文中,我们了解了 NoSQL 中键值存储的特性。在开始本主题之前,我们必须了解 NoSQL 的一些基础知识和 NoSQL 的类型。

NoSQL是指非SQL或非关系型数据库,其主要目的是提供一种存储和检索数据的机制。 NoSQL 数据库将信息存储在 JSON 文档而不是列和行中。正如我们所知,关系数据库使用行和列来存储和检索数据,但在 NoSQL 的情况下,它使用 JSON 文档而不是行和列,这就是为什么它也被称为非关系 SQL 或数据库的原因。

NoSQL 数据库包括简单的设计、更简单的水平扩展以及对可用性的精细控制。 NoSQL 数据库中使用的数据结构与我们在关系数据库中使用的数据结构不同。 NoSQL 中使用的数据库更先进,这使得 NoSQL 中的一些操作更快。

SQL 和 NoSQL 的图形区别

图 1:SQL 和 NoSQL 之间的图形差异

更多细节请参考文章:SQL 和 NoSQL 的区别。

为什么使用 NoSQL?

  • 与关系数据库系统相比,NoSQL 中存在的关系没有那么复杂。
  • 与其他数据库相比,在 NoSQL 中执行的操作要快。
  • 它的实施成本低于其他成本。
  • 在其中编程易于使用且更灵活。
  • NoSQL 提供了高级别的可扩展性。

NoSQL 的类型:

以下是一些最流行的 NoSQL 类型:

  • 文档数据库:它的主要操作是将信息存储在文档中。
  • 键值存储:这些组将集合中的数据与使用唯一键标识的记录相关联,以便于检索。
  • 宽列数据库:它们使用表格格式,但允许在每行和每张表中的数据命名和格式方面存在很大差异。它与关系数据库不同,因为表中列的名称和格式因行而异。
  • 图数据库:其主要目的是使用图结构来定义数据点之间的关系。

什么是键值存储 NoSQL?

这是一种特定类型的 NoSQL 数据库,其中使用了键值方法,其主要目的是表示各种键值对。这里的键被称为值的唯一标识符,值可以表示不止一种类型的对象,比如一个字符串甚至一个字符串。

这与关系数据库的不同之处在于,键值数据库不包含任何定义的结构,因为我们知道关系数据库将数据表示为表和列,关系数据库具有明确定义的结构并分配其数据类型到它的列,而键值数据库包含一对键和值。

想一想字典,例如包含各种单词及其含义的字典。所以这里字典中的单词是键,它的含义是值。可以指定键名,从简单的数字到值的任何特定描述。

在下面给出的示例中,我们有一对如上所述的键和值,因为在左侧有一个键列,它们的值在这些键的右侧定义。

NoSQL 中的键值对存储

图 2:NoSQL 中的键值存储示意图

键值存储的特点:

  • 一致性:一致性是仅适用于键值存储中单个键的操作的功能。键值存储中有各种实现,例如在 RIAK 中,实现了最终一致的一致性模型。
  • 事务:在其中,写入不能保证,因为许多数据存储以不同的方式实现事务,例如 RIAK 使用通过使用 W 值复制因子实现的仲裁概念。 (RIAK 是一个开源的分布式数据库,通常基于 NoSQL 数据库系统。)
  • 查询:所有的键值存储都可以通过键查询,仅此而已。如果我们有使用列的某些属性查询的需求,在这种情况下使用数据库是不可能的,我们的应用程序需要读取值来识别该属性是否满足条件。
  • 缩放:存储的键值通过称为分片的过程进行缩放。分片意味着我们可以通过将数据的不同部分放在不同的服务器上来支持可扩展性,这称为分片。

流行的键值数据库:

  • REDIS: Redis 是流行的键值数据库之一,因为它是一种开源的内存数据结构,用作数据库和消息代理。 REDIS 支持许多数据结构,例如列表、哈希、集合、字符串。 REDIS 有许多更重要的功能,例如它具有内置的复制、LUA 脚本以及它还支持 LRU eviction。
  • AEROSPIKE:它是世界领先的企业级、互联网规模、键值存储数据库,它因其一些优于其他数据库的优势而广受欢迎,例如 aerospike 提供了强一致性、线性可扩展性和比其他数据库更高的性能。
  • AMAZON DynamoDB:这个数据库受欢迎的主要原因是它是一个完全托管的数据库服务,可以在任何规模上提供快速的性能。许多 AWS 客户选择 DynamoDB 用于网络游戏、移动、教育技术、物联网和许多其他应用程序。