视频

了解更多
JSON 数据库是如何运作的?它们为应用程序开发人员带来了什么价值?也许从一只宠物猫的角度来看的一些例子可以帮助我们理解。
让我们从 定义术语开始。还有那只猫。
无论开发人员是创建业务逻辑、用户界面、数据库还是后端系统,他们都需要一种方法来描述和交换数据。一个系统对另一个系统说:“我拥有您需要的数据!” 他们需要确定如何构建数据交换方式。数据交换可以使用二进制数据,也可以使用基于文本的数据。
JavaScript 对象表示法 (JSON) 是一种基于文本的数据交换格式,是 JavaScript 的原生格式。由于它是文本,因此人和机器都可以读取它。JSON 通常用于存储和传输数据到应用程序。
与 XML 类似,JSON 是一种数据交换格式,而不是编程语言,从这个意义上说,它不是 图灵完备的。但是,与 XML 一样,在某些方面,由于其可读性和强大功能,它可以像编程语言一样使用。正如 JSON.org 解释的那样,JSON “使用 C 语言家族的程序员熟悉的约定”,例如 Python 和 Java。这使得 JSON 成为在平台之间共享数据的便捷工具。
JSON 具有双重结构:
JSON 值可以是对象、键值列表、记录、字典、关联数组、字符串、数字、true、false 或 null。
例如,假设要查询的键是一只小猫;它的值为 floofy。这两个值共同构成一个对象,只要对象用大括号括起来。(这只猫可以被任何它喜欢的东西包围。)描述这只小猫的完整 JSON 字符串可能看起来像
{"name": "Jason", "age": 1, "floofy": true}
在这个例子中,左边的属性,例如 name、age 和 floofy 是要查询的键,而 Jason、1 和 true 代表值。
准备好看看 Redis Enterprise 原生 JSON 如何让开发人员构建现代应用程序了吗? 阅读有关 Redis JSON 的更多信息。
JSON 数据库(或称为 JSON db)是一种文档数据库,有时称为文档存储。数据以基于文本的文档形式表达,而不是您可能从 SQL 数据库中熟悉的列或表格形式。
从结构上讲,JSON 数据库是一种 NoSQL 数据库,它使用 JSON 文档(例如 PDF、文档或 XML 或 JSON 文件)读取和存储半结构化数据。列式、图式、键值式、内存式和文档式都是不同类型的 NoSQL 数据库。
除了其数据结构的用户友好性之外,优势还包括存储、模式 和索引灵活性和水平和垂直扩展等方面。以下是一些 JSON 数据库简化开发人员工作方式的方法。
JSON 数据库中的一个重要元素是它们是动态的。 SQL 数据库 具有固定的字段定义和字段大小,因此重组数据库需要重新索引和其他复杂操作。JSON 数据库更灵活,因为键值结构可以适应数据模型或应用程序需求的变化。
想象一下,一个依赖于用户配置文件和登录身份验证的 Web 应用程序。JSON 数据库的键值可以存储用户 ID、用户偏好、多个 ID 映射以及其他信息,以便应用程序可以快速查找用户并验证访问权限。如果应用程序需求发生变化 - 也许出于合规性原因,需要包含地理数据 - 数据库模式可以在无需完全改造的情况下发生变化。
JSON 文档数据库是存储数据的紧凑排列,具有开发人员定义的灵活结构。JSON 文件的精简性大大加快了数据与应用程序交互的速度。
JSON 数据库模式 允许嵌入或链接对象,包括循环引用。前面介绍 Jason 这只猫的例子故意保持“hello world”的简单性。但是,JSON 还可以对复杂的数据结构进行建模,例如对象图和循环图。特别是,JSON 数据库支持 嵌套、对象引用和数组。这为开发人员提供了清晰度,因为它将对象分解成不同的层,使数据库更易于维护。
使用嵌套的 JSON 数据库模式,某些值是其他 JSON 对象。
{
"pet": {
"name": "Jason",
"age": 1,
"location": "USA",
"kur": "long-haired",
"breed": "Persian",
"Address": {
"longitude": "-113.6335371",
"latitude": "37.1049502",
"postal code": "90266"
}
}
}
高性能计算要求数据库能够扩展以满足需求,无论是在长期(支持海量数据集)还是短期(每个人都购买更多猫玩具的节日购物季)内。水平可扩展性是一种执行负载平衡以防止一个节点承担所有负荷的方法,它在 JSON 数据库中特别有效。这是因为可以将 JSON 数据和索引分区到多个分片和节点,以提高速度和内存管理。
JSON 数据库在数据科学和分析应用程序中变得非常流行。这些要求苛刻的大数据应用程序受益于 JSON 数据库的水平架构和对多个并发查询的支持。
这是因为 JSON 数据库具有灵活的模式和水平和垂直扩展功能。这些功能使文档数据库能够存储大型数据集,并在需要时添加更多节点。 分区 允许数据在节点之间进行平衡,以提高读写速度并确保 可用性。
索引是一种检索数据的策略。文档数据库支持各种索引,例如排序集、按字典顺序编码的索引、地理空间索引、IP 范围索引、全文搜索索引和分区索引。
要查看实时 JSON 演示,Redis 的 Justin Castilla 有趣的直播“Do Birds Dream of JSON”展示了如何从海量信息库中搜索和提取信息。他使用鸟类目击数据来突出显示 JSON 的功能 - 当然没有猫来监督这些鸟类。
如果您需要有关 JSON 工作原理的更多信息,我们的 YouTube 频道 提供了大量关于这种流行的数据表示格式的直播、操作指南视频和网络研讨会。无论何时遇到死胡同,请随时访问我们的频道。我们通常会提供视觉答案来指导您。