dot 快速的未来即将来到您所在城市的一场活动。

加入我们在 Redis Released

无数据库 (DBLess) 架构是什么以及它为何是未来

你可能会疑惑:像 Redis 这样的数据库公司为什么要讨论无数据库 (DBLess) 架构?它是什么?这是很自然的疑问,但在我们深入探讨细节之前,让我们先了解一下这种全新架构背后的新思维方式。 

为此,我想快速地绕开主题,谈一谈被称为第一原理的思维方式。它强迫你自己思考,而不仅仅是遵循传统,而是质疑一切。 

第一原理的要旨是,除非你正在研究自然法则,比如万有引力定律,否则每个系统或概念都是人工制品,并且可能存在低效率。此外,时间的推移或技术创新可能会证明该概念已过时。这意味着你应该定期质疑传统系统或概念,看看是否可以构建更好的东西。 

要找到那些低效率,你必须采取一种系统的、科学的方法,将它们分解成更小的部分以获得基本真理。然后,观察时间的推移或新技术的出现是否使其中任何部分过时。如果是这样,那就表明你有机会构建一个更新、更好的系统。 

从本质上讲,无论人们是否意识到,大多数社会、技术和经济变革都是因为人们用第一原理进行思考和挑战传统而发生的。 

消息来源:参见底部的参考链接 

在上面的视频中,埃隆·马斯克解释了他如何研究电池的原材料,并将其成本从 700 美元降低到 70 美元。 

让我们举另一个第一原理思维的示例,因为这样更容易解释:汽油车与电动汽车。 

汽油车与电动汽车 

我们都知道,你可以用电动电池来驱动汽车。 

但是,虽然汽油车确实有电池,但它不用于驱动汽车。它将电池用于启动发动机、空调、音响系统、灯光、传感器、锁等,而不是用于驱动汽车。取而代之的是,它依靠内燃机 (ICE) 来驱动汽车。 

事实证明,ICE 汽车效率低下。实际进入车轮的功率仅占产生的功率的16% 至 25%。另一方面,电动汽车提供给车轮的功率约为90%!电动汽车在环境保护、维修成本等方面也具有重大优势。 

如果你从第一原理的角度来看待这一点,尽管今天制造的大多数汽车都是汽油车,但基本的事实是,它们使用的是一个效率低下的系统。 

现在,如果你看看一辆电动汽车,它就去除了这种低效情况来制造一种新型汽车。在这种情况下,它只是摆脱了复杂且低效的发动机,并用一个大电池和一个直接驱动车轮的马达取代了它。

因此你可以看到,第一原理思维是如何引导发现低效情况并创造一个更新、更好的系统的。

现在,根据这些想法,如果你要创办一家新汽车公司,你会制造汽油汽车还是电动汽车?

让我们转移档位,过渡到数据库的世界中,看看能否将同样第一原理思维应用于该部门。

传统架构与无数据库 (DBLess) 架构

让我们先看看传统架构。

在传统架构中,你有一个主数据库(PostgreSQL、MongoDB 等)和一个从数据库或缓存(例如 Redis 或 Memcached)。主数据库用于存储所有数据并支持 CRUD 操作。缓存数据库用于缓存、会话存储、速率限制、IP 白名单、发布/订阅、排队以及许多其他事务。

如果你考虑一下,即使有缓存命中,我们也正在对部分 CRUD 操作使用从数据库。不过,我们仍然没有将其充分用作主数据库。

这让你联想到汽油汽车的问题了吗?就像它们携带一个电池来为移动汽车以外的许多事物供电一样,传统架构将 Redis 等事物用于除主数据库之外的所有事务。

你是否看到了相似之处?

如果我们使用第一原理思维来做电动汽车所做的事情会怎样?就像电动汽车摆脱了发动机一样,如果我们摆脱缓慢且低效的主数据库,并简单地使用缓存数据库作为主数据库呢?

向无数据库 (DBLess) 架构问好。

无数据库 (DBLess) 架构

在此架构中,你摆脱了主数据库,因此命名为 DBLess。相反,你将以前从属的/缓存的数据库用作新的主数据库。

让我们想象一下,我们开始使用 Redis 或其他类似的缓存数据库作为主数据库,并完全摆脱了主数据库(例如 PostgreSQL、MySQL、MongoDB 等)。

重要说明: 这只是一场架构探讨。DBLess 架构并非局限于 Redis 或 Redis Enterprise 的专有架构,它将适用于任何 Redis 类系统。此外,请记住 Redis 是一个开源软件项目,因此你可以在自己的设备上或任何其他 Redis 托管云提供商处构建它。

是否有人使用此架构?

是的,当然。正如您所料,我们每天都会与数千位客户合作。虽然 Redis 仍主要用作辅助数据库,但我们已开始看到这种新的 DBLess 架构在过去几年中出现。随着 Redis 本身功能日益丰富、功能日益强大,而且有更多人取得成功,它开始获得更多关注。许多人甚至不是我们的客户,比如 Request Metrics,基于这种架构构建了他们的整个初创企业,并发现它取得了令人难以置信的成功。

点击图片转到 YouTube 视频。

既然您知道这是真的,让我们来看看这一切是如何实现的。

从技术角度讲,它与传统的原生数据库相比如何?

让我们以 Redis Enterprise 为例,并将其与传统的原生数据库进行比较。

正如您所见,简短的回答是,它的表现确实非常好,事实上,它甚至可以比某些传统原生数据库更好。

谨记,您可以使用 Redis OSS 或其他 Redis 竞争对手轻松使用此架构。您只需要拿出一个类似的比较表即可,了解它运行得如何。

但是,Redis 真正能做到吗?我以为它只是一个缓存?

您说得对。大约十年前,它最初是一个缓存存储,而且至今仍为此目的而服务。 

然而,Redis 和 Redis Enterprise 多年来已经通过纳入传统数据库的几乎所有功能而显著扩展,并且拥有与 Redis 核心原生运行的模块生态系统。 

RedisJSON比市场领先者快 10 倍)为例。您可以使用它,从本质上来说它是一个实时文档型数据库,或者使用RediSearch 模块比 Elastic Search 或 Algolia 快 4 到 100 倍),并实现类似 Elastic Search 或 Algolia 的实时全文搜索。 

而且您可以将这些模块作为 Redis OSS 的一部分来使用,并自行托管。

这确实是未来吗?

我们坚信这种架构就如同电动汽车是未来一样,是未来。虽然电动汽车只占所有汽车的 1% 不到,但它们确实是未来。我们认为,这只是技术的自然演变。看到我们许多客户取得的成功,我们认为,越来越多的人了解它,就会有更多人尝试并采用它。

名字中有什么?

我们称其为 DBLess,因为我们正在摆脱传统数据库,并且我们觉得这是一个有趣而另类的名字,类似于“无状态”、“无服务器”、“NoSQL”以及“无软件”。 

如何开始?

如果您是成千上万的 Redis 用户之一,那么您的运气就来了,您可以立即进行概念验证! 我们并未要求您添加任何新内容,而是要求您摆脱一些效率低下内容。 

以下是如何进行操作。

如果您正在构建新系统或新功能,那么直接开始使用此架构或至少进行概念验证并查看它是否适用于您是很简单的。

如果您已经拥有传统数据库,那么可以像我们的许多客户一样进行混合式操作。他们继续使用传统架构,但将产品的某些部分迁移到较新的架构中,例如已经严重依赖 Redis 或较新功能的部分。他们缓慢而稳定地迁移所有功能,直到完全完成迁移。

摘要:成为基本原理思考者

我们要求您成为基本原理思考者。仅仅因为某些内容传统上被使用,并不意味着它就是完美的,而且您应当盲目追随。我们要求您质疑传统思维,对其进行批判性审查并尝试替代方案。当您这样做时,您可能会为自己和他人发明一些有用的东西。

DBLess 架构为传统思维提供了一种替代选择。与其猜测是否可行,不如尝试进行概念验证。它可能会让您感到惊讶!

参考

  1. 埃隆·马斯克谈基本原理