Redis希望得到您的尊重,并且这样做,它希望以其最常见的用例而着称:缓存。作为一个开源数据平台,Redis作为实时数据库几乎无处不在,它位于您的组织用于事务处理或内容服务的“真实”数据库之间。它是无处不在的,这要归功于它是一种可以作为开源使用的紧凑型发动机,它似乎经常与木制品融为一体。难怪它在db-Engines上排名第八。
它满足了一个共同的需求:提供缓冲区,通过减轻实时响应的负担来缓冲后端事务或内容服务系统。自从网络开放到事务处理以来,这一直是一种迫切的需求,而现有的数据库平台根本无法处理互联网规模的负载。
但在Redis之前,内存数据存储缺乏持久化,复制或管理模式的能力。这是专有的内存数据网格(以及后来的开源缓存技术)的时代,它暂时将数据存储为对象并依赖应用程序代码来管理事务状态。传统观点认为,处理交易的真实数据库根本无法扩展或内存过于昂贵。
该公司的Redis Labs在其他主持下开始生活,最初有一家公司支持Memcached,然后才看到Redis如何扩展的证据。根据CTO和联合创始人Yiftach Shoolman的说法,这是一个冒充网站,引起了人们对Redis缩放的关注。
该公司转而支持Redis,现在通过开放的核心业务模式提供。Redis数据库是完全开源的,但企业功能和Redis模块是单独许可的(更多信息如下)。
Redis Labs最初只通过云提供Redis,但随后添加了一个内部部署产品。此产品 Redis Enterprise包含核心数据库以及多集群支持,ACID事务,自动故障转移,存储分层和安全功能等功能。扩展核心Redis数据库是Redis模块的用武之地。由Redis Labs和社区开发的各种SDK组合,模块背后的指导思想是防止核心Redis数据库的范围蔓延,这是Redis创建者Salvatore的一个问题圣菲利波热衷于此。模块通过添加SDK来支持Redis可扩展,以支持新的数据类型,如JSON,图形或时间序列数据; 或搜索,神经网络处理,SQL查询或布隆过滤等功能。
我们无法避免这里的许可故事。对于Redis Labs自己开发的模块,该公司在去年获得Redis源可用许可证之前就已经完成了其许可版本的份额,这使得开发人员可以使用代码,但实质上是阻止它们货币化(无论是否存在真正的例外情况)令人困惑的部分)。为了清晰的开放核心,我们松了一口气,但这是另一个故事。
由于支持各种数据类型,这些模块将Redis从其键值存储根扩展到多模型数据库。在某种程度上,该方法模仿Cosmos DB的方法,因为数据存储在规范存储引擎中,但在不同视图中公开。主要区别在于,使用Cosmos DB,一旦您为数据集(例如图形或MongoDB兼容的 JSON文档)提交特定API ,您的数据就会在该模型中公开。
但是,由于Redis将数据存储在内存中,或者使用新的数据分层功能,SSD或英特尔永久内存(Optane),因此没有这种限制。这是可能的,因为数据存储在内存中,数据视图可以即时公开。这与SAP HANA等其他内存数据库非常一致,出于同样的原因,它可以消除持久化物化视图的需要。
因此,这些功能允许时间序列数据与搜索引擎或SQL查询的交互。协调这是Redis Enterprise的另一个功能,RedisGears是一个用于构建和编排实时数据管道的实用程序。在这种情况下,模型将使用Redis Streams提供可以实时与这些数据类型中的每一种进行交互的变更数据捕获源。
这促使冒险的Redis客户超越缓存。在最近为纽约开发人员举办的Redis Day会议上,Redis Labs展示了几个开箱即用的客户。Fiserv最初使用Redis Enterprise进行缓存,提供了一个教科书示例。几年前使用无冲突复制数据类型(CRDT)引入了主动 - 主动(无主)双向复制,Fiserv希望利用新的多主机功能来消除手动复制过程创建副本的需要。这将提供CRDT带来的“强烈的最终一致性”的本地处理的优势。但当然总是存在一些并发症,通常涉及一些小问题,例如确保所有正确的端口都是开放的,以允许复制品之间的变化流不断流动(这对于金融服务公司而言并非如此,安全模式倾向于关闭大多数端口)。
随着扩展,Redis人员显然正在扩大他们的视野。他们提供的基准测试显示Redis不再被视为小型数据库。时间序列有了新的焦点。
Redis的更广泛愿望,毫不奇怪,其他平台,如亚马逊DynamoDB加速器(DAX)正在蚕食它的地盘。随着内存价格的下降,数据库添加内存选项的情况越来越普遍。Redis正在扩展它的翅膀,不仅支持更广泛的数据类型,而且还为更便宜的存储形式添加分层。这是SAP HANA等其他内存数据库所拥有的现实。说到多主人,Redis并不孤单。它将自己与Apache Cassandra(具有可调整性)和Google Cloud Spanner进行比较(强调一致性)。虽然我们不希望Redis成为通用交易数据库,但我们可以预见实时信封扩展的用例。