我们很高兴宣布 Redis 8 的正式可用版本发布。
Redis 8 是迄今为止性能最高、可伸缩性最强的 Redis 版本。它拥有 30 多项性能改进,包括命令速度最高提升 87%,每秒操作吞吐量最高提升 2 倍,复制速度最高提升 18%,以及通过 Redis Query Engine 提供最高 16 倍的查询处理能力。
此版本新增了 8 种数据结构,包括向量集(测试版)、JSON、时间序列,以及 Bloom filter、cuckoo filter、count-min sketch、top-k 和 t-digest 五种概率性结构(其中一些之前作为独立的 Redis 模块提供)。这些新的数据结构可以帮助您更好地解决当前的用例,并为下一代快速实时应用构建基础。
此外,我们将免费产品名称从 Redis Community Edition 更改为 Redis Open Source,以反映新增了 AGPLv3 作为许可选项。
多年来,我们创建了新的 Redis 模块,帮助您更快地构建用于 Web、移动和生成式 AI 的实时应用。然而,我们听到许多用户反映,了解如何开始使用模块常常令人困惑,尤其是在将正确的模块版本与 Redis 版本匹配时。Redis Stack 的引入有所帮助并获得了显著采用,但也导致了社区的分散。
今天,我们将 Redis Stack 和社区产品合并到一个单独的 Redis Open Source 分发版本中。所有模块都已包含在此软件包中。今后,Redis Open Source 将在任何地方为您提供相同的功能集。当您使用 Redis Open Source 时,您知道您始终获得的是最新、最好的 Redis,以及社区可用的全套功能。
以下是 Redis 8 在 Redis Open Source 中包含的一些功能和特性。
向量集数据结构 [测试版]
我们很高兴宣布向量集,这是一种用于向量相似性搜索的新数据类型。由 Redis 的原始创建者 Salvatore Sanfilippo 开发,向量集借鉴了有序集(sorted set)的灵感,有序集是 Redis 的另一种基本数据类型,以高效处理有序集合而闻名。向量集扩展了有序集的概念,允许存储和查询高维向量嵌入,从而增强了 Redis 在涉及语义搜索和推荐系统等 AI 用例中的能力。向量集补充了 Redis Query Engine 中现有的向量搜索功能。
向量集数据类型目前处于测试版。未来版本中,我们可能会更改甚至中断其功能和 API。我们欢迎您在试用此新数据类型时提供反馈,同时我们将努力推进其正式可用。
JSON 数据结构
JSON 数据结构改进了您解决传统 Redis 用例的方式。它还让您更轻松地管理会话,例如使用数组和对象来建模分层会话数据。在 Redis 8 中,JSON 数据结构允许您将 JSON 文档作为键存储在 Redis 中。Redis 提供了使用 JSONPath 语言检索和操作文档的命令,以实现对特定元素的更细粒度且高效的访问。Redis 还支持原子更新,因此您可以修改 JSON 文档的某些部分,而无需先检索整个文档。
时间序列数据结构
时间序列数据结构简化了您处理快速变化的带时间戳数据(如来自物联网传感器、系统遥测、股票价格、商品价格、外汇汇率和加密货币价格的数据)的用例。在 Redis 8 中,获取和使用时间序列数据非常快。这是因为 Redis 使用非常高效的压缩算法来保持数据内存占用较低。此外,可以定义压缩(下采样)规则以实现高效的长期存储。
概率性数据结构
概率性数据结构让您能更快地回答关于数据流和大型数据集的常见问题。在内存使用效率和处理速度方面的显著优势是以牺牲绝对准确性为代价的权衡。在 Redis 8 中,除了允许估计集合基数的 HyperLogLog 外,现在还有 5 种额外的概率性数据结构。
Redis Query Engine
Redis Query Engine 提供了超越键查找的快速数据访问能力。使用 Redis 8,您可以为哈希和 JSON 数据结构中存储的数据创建二级索引。 Redis Query Engine 最常见的用途包括向量搜索、按条件或标签返回精确匹配项的数据查询,以及按关键词或语义返回最佳匹配项的搜索查询。查询引擎还支持词干提取、同义词扩展和模糊匹配等功能,以提供更全面的搜索结果。也可以存储表示哈希或 JSON 文档中数据点的向量嵌入,以便在 Redis 8 中利用查询引擎进行向量相似性搜索。
访问控制列表 (ACL)
虽然 Redis 8 默认是安全的,但访问控制列表 (ACL) 允许更细粒度的安全控制。使用 ACL,您可以定义哪些用户可以连接、他们可以执行哪些命令以及他们可以访问哪些键。这有助于您限制未经授权的访问并在 Redis 环境中维护数据完整性。在 Redis 8 中,我们为新的数据结构引入了新的 ACL 类别。现有的 ACL 类别,例如 @read 和 @write,现在包含了支持新数据结构的命令。
基于 Redis 7.4 的新命令
当您基于 Redis 8 进行构建时,您还将获得 Redis 7.4 中的所有新功能和特性,包括我们引入的哈希字段过期。这是最频繁请求的功能之一(例如,#13345, #13459, #13577),您可以在 Redis 8 中找到 3 个新的哈希命令。
Redis 8 在 Redis Open Source 中可用,除了我们去年改为的双重 RSALv2 和 SSPLv1 许可外,还新增了开源的 AGPLv3 许可选项。我们听取了一些客户的反馈,他们认为在 OSI 批准的许可下运营更容易,因此我们添加了该选项。在此阅读更多,或访问 redis.io/legal/licenses/。
Redis 8 引入了 30 多项针对单核和多核环境的性能改进,实现了单个新 Redis 版本中的最大性能飞跃。
基于我们数万现有客户和用户的匿名统计数据,我们投资于您使用最多的方面。这意味着对于许多用户而言,升级到 Redis 8 后,在使用 Redis 的方式上将看到性能改进带来最大的提升和价值。
命令延迟最高降低 87%
与 Redis 7.2.5 相比,我们在 Redis 8 中降低了大量命令的单命令延迟。在我们 149 个测试的基准测试中,90 个命令运行更快,延迟更低。p50 延迟降低范围从 5.4% 到 87.4%。绝大多数使用 Redis 8 构建的应用将看到显著的性能改进。
更多详情请参阅8.0-M02 博客文章。
通过启用多线程,每秒操作吞吐量提升 2 倍
自 Redis 6 以来,我们一直支持 I/O 线程来处理客户端请求,包括套接字读写和命令解析。然而,之前的实现未能完全发挥性能潜力。
在 Redis 8 中,我们引入了新的 I/O 线程实现。您可以通过设置 io-threads 配置参数来启用它。默认值为 1。在多核 Intel CPU 上将参数设置为 8 时,我们测量到吞吐量最高提升了 112%。具体的吞吐量提升将有所不同,取决于正在执行的命令。
复制使用的内存最高减少 35%
在 Redis 8 中,我们引入了一种新的复制机制。在复制过程中,我们同时启动两个复制流:一个用于传输主节点,另一个用于传输期间发生的变更流。第二阶段不再被阻塞等待第一阶段完成。
在我们的测试中,我们对一个 10 GB 数据集进行了完全同步,同时附加了 2684 万次写操作流,在复制期间产生了 25 GB 的变更。采用新的复制机制,主节点在复制期间处理写操作的平均速率提高了 7.5%。复制时间也减少了 18%,并且主节点的峰值复制缓冲区大小降低了 35%。
更多详情请参阅8.0-M03 博客文章。
通过水平和垂直扩展,查询处理能力最高提升 16 倍
Redis 8 附带了 Redis Query Engine,它可以通过两种新的方式进行扩展,这两种方式之前仅限于 Redis Cloud 和 Redis Software。第一种方式支持在集群数据库中进行查询,允许您管理带有索引的超大型数据集,并通过扩展到更多 Redis 进程来支持更高的读写吞吐量。第二种方式允许您添加更多处理能力以垂直扩展查询吞吐量,从而解锁高达之前的 16 倍的吞吐量。
当这两种扩展方式都启用时,Redis 8 是市场上最快的向量数据库,您可以通过 Redis Open Source 免费获得它。我们演示了这种规模,以及如何在 10 亿个 768 维向量嵌入上以高精度实时执行向量搜索查询。
在十亿向量规模下,通过实时索引,对于允许精度至少达到 95% 的索引配置,Redis 8 每秒可维持 66,000 次向量插入。对于导致较低精度的索引配置,Redis 8 可以维持更高的摄取速率,达到每秒 160,000 次向量插入。通过使用更多服务器可以进一步提高吞吐量。对于高精度查询,我们可以看到更大的 HNSW 索引可以在牺牲延迟的情况下提高搜索质量。在同时执行 50 个搜索查询时,我们对于前 100 个最近邻居达到了 90% 的精度,中位数延迟(包括 RTT)为 200 毫秒;对于 95% 的精度,中位数延迟(包括 RTT)为 1.3 秒。
开源客户端库
Redis 8 很容易开始构建您的应用,并且您今天正在使用的最高性能和最可靠的开源客户端库完全支持它。要了解更多信息,请参考我们的文档,获取您最喜欢的编程语言的快速入门指南。
对象映射库
如果您想使用对象映射技术来映射您的数据,可以使用Redis OM 客户端库来帮助您。它们将帮助您建模对象、添加模式验证,并将它们存储在 Redis 8 中。
生成式 AI 用例
对于您正在构建的生成式 AI 应用和用例,我们通过提供 Redis 向量库 (RedisVL) 与 Redis 8 一起作为处理向量的简单而强大的解决方案,使其变得更加容易。通过轻松集成大型语言模型(LLMs)到您的 AI 应用或执行语义搜索,RedisVL 包含了许多功能,使新的生成式 AI 功能变得快速且可行,例如语义缓存、向量化器和语义路由。
开发者环境
Redis Insight 和 Redis for VS Code 是可视化工具,可让您探索数据、设计、开发和优化应用程序,同时也是 Redis 学习和上手平台。Redis Insight 特别集成了 Redis Copilot,这是一款自然语言 AI 助手,可改善处理数据和命令时的体验。Redis 8 完全兼容 Redis Insight 和 Redis for VS Code。
如果您正在使用旧版本,例如 Redis 6 和 Redis 7,我们鼓励您升级到 Redis 8,以利用新的性能改进和特性。我们致力于保持 Redis Open Source 中的 Redis 8 免费,以便您可以提升解决包括缓存、会话管理、排行榜和匹配等用例的方式。
关于如何升级到 Redis 8 的更多信息,请参阅此处。
如果您是 Redis Stack 的现有用户,目前 Redis Open Source 中可以找到之前 Redis Stack 独有的受支持功能和特性。我们也鼓励您升级到 Redis Open Source,因为我们将在 2025 年 9 月 15 日停止发布 Redis Stack 6.2、7.2 和 7.4 的补丁。
Redis Open Source 中的新功能将在今年晚些时候完全引入我们的其他产品。
Redis 8 已在 Redis Open Source 中正式可用,并可在未来几天通过以下渠道安装: