暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[译文] 键值存储介绍

原创 Zamani Rahman 2021-08-27
6286

1990 年代中期,当 Internet 变得流行并且关系数据库无法处理种类繁多的数据类型时,Carlo Strozzi 开发并引入了非关系数据库或通常称为 NoSQL。首字母缩略词 NoSQL 于 1998 年首次使用,当时 Carlo Strozzi 为其不使用 SQL 的轻量级开源关系数据库命名。

最初,NoSQL 是为了响应 Web 数据、处理非结构化数据和对更快处理时间的需求而开发的。NoSQL 通常将数据存储在键值存储、文档存储、宽列存储以及图形数据库中。在这篇文章中,我们将详细介绍其中一个类别,也许是最流行的解决方案,即键值存储。

什么是键值存储以及它是如何工作的?

键值存储也称为键值数据库,可以定义为非关系型数据库和简单的数据库,它们使用关联数组作为其底层数据模型。这种像 JSON 这样的关联数组可以包含从数字或字符串到使用键来跟踪对象的复杂对象的任何内容。以最简单的形式,键值存储使用简单的键值方法来存储数据。看看下面的例子:

image.png

对于这种类型的数据库,为了存储唯一键以及指向相应数据值的指针,实现了一个哈希表。由于键值存储属于 NoSQL 家族,一般它没有查询语言,因此密钥管理对于稳定操作是必不可少的。然而,提供了一种添加或删除键值对的方法,并且只能查询键,而不能查询值。检索和更新数据的方式是使用简单的命令,如删除、获取和放置。在大多数情况下,键值存储在性能和速度方面提供了更好的改进。

另一方面,键值对是两个相互关联的数据的组合。键值对的一个很好的例子是电话簿,其中键是人,而值是相应人的电话号码。

键值存储允许水平扩展,这是其他类型的数据库无法实现的,也是高度可分区的。为了能够通过键精确快速地定位值,键值存储使用紧凑高效的索引结构。因此,它使键值存储成为需要连续查找和检索数据的系统的正确选择。

例如,Redis 是一个键值数据库/存储,已针对跟踪简单数据结构(如基本类型、列表、堆以及持久数据库中的映射)进行了优化。使用这种方法(支持有限数量的值类型),它设法在查询和操作数据期间展示了一个非常简单的界面,更不用说其吞吐量的能力了。除了Redis,以下是一些常见和流行的键值存储/数据库的列表,值得注意的是,并非每个键值存储/数据库都相同,因为它们使用不同的技术和方法:

Aerospike:开源并使用闪存优化的内存

Apache Cassandra:分布式、免费和开源的管理系统

Oracle Berkeley DB:基本、高性能、嵌入式、开源

AWS DynamoDB:完全托管的服务

Couchbase Server:适用于关键业务应用

Riak:快速、灵活和可扩展

键值存储优势

在处理大量数据时,必须拥有非常高效和快速的检索技术或流程以确保顺利运行:您可能听说过MongoDB (NoSQL),有时正是出于以下原因使用它:管理大数据套。如果您想知道为什么会这样,以下是使用键值存储的四个显着优势:

性能和速度

键值存储绕过了需要索引的传统限制。由于键值存储使用键而不是索引,因此它提供了无与伦比的性能并为数据密集型应用程序提供了高吞吐量。

改善用户体验

为客户个性化存储数据在键值存储中非常典型。一旦从客户那里提取数据以及他们的行为和偏好,它们将用于定制用户体验。

可扩展性

毫无疑问,键值存储在处理数据方面非常出色,因此可以在水平方法中无限扩展。提高了适应读/写操作的能力。

灵活性

考虑到值可以是从数字到字符串甚至 JSON 的任何内容,它使键值存储完全灵活。

键值存储的用例
在处理关系数据库的大量读/写操作时总是有问题,而键值存储则不是这种情况。由于其优势,尤其是在可扩展性方面,无论数据有多大,都可以通过键值存储轻松处理。此外,键值存储通过其内置的冗余功能设法处理丢失的数据。考虑到所有这些因素,以下是键值存储的常见用例列表或通常使用它的时间:

  • 在 Web 应用程序中存储用户会话详细信息和首选项

  • 广泛用于实时产品推荐和广告

  • 用作数据缓存以提高应用程序性能

  • 作为不定期更新数据的数据缓存

  • 用作大数据研究的材料

键值存储的限制

尽管键值存储看起来很有希望,但仍然存在一些限制和缺点。在某些情况下,这些限制也可能导致问题。以下是一些应该考虑的列表。这些是一般限制:

  • 键值存储没有优化,需要一个解析器来解析多个值。它们仅针对单个键和值进行了优化。

  • 这些类型的商店无法过滤掉值字段。

  • 键值存储未针对查找进行优化。Lookup 会扫描整个集合,这会影响性能。

  • 显然,键值存储与 SQL 不兼容。

  • 键值存储不能让我们在保存键失败的情况下进行回滚。

  • 没有与 SQL 相对的标准查询语言。

总结

键值存储是 NoSQL 中除文档存储、宽列存储和图形数据库之外的类别之一。它是一个非关系且简单的数据库,它使用关联数组作为其底层数据模型。使用这种类型的数据库有很多优点也有一些缺点。我们还研究了一些键值存储的用例。

希望这篇文章为你们中的一些人提供了更好的键值存储概述。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论