Redis 的最新版本,特别是 Redis 8.0,在向量数据和全文索引方面取得了显著进展。Redis 8.0 核心功能引入了全新的 Vector Set 数据类型(目前为 Beta 版),专门用于高效存储和查询高维向量,支持相似性搜索。同时,RediSearch 模块的功能已被深度整合到 Redis 8.0 核心中,形成 Redis Query Engine,它不仅继续提供强大的全文索引和搜索能力,还增强了对向量相似性搜索的支持,允许进行复杂的混合查询。因此,Redis 8.0 通过其核心功能和整合的 RediSearch,为处理现代 AI 应用中的向量数据和全文检索需求提供了全面的解决方案。
1. Redis 最新版本概述
Redis 作为一款广受欢迎的开源内存数据结构存储,其最新版本在性能、功能和易用性方面均有显著提升,特别是在支持现代应用如人工智能和实时数据分析方面。本节将概述 Redis 7.2 和 Redis 8.0 这两个重要版本的主要特性。
1.1 Redis 7.2 版本特性
Redis 7.2 版本,尤其是其企业版(Redis Enterprise Software),带来了一系列重要的更新和改进。根据 2023 年 8 月发布的 7.2.4-52 版本,Redis 7.2 引入了对开源 Redis 7.0 和 7.2 核心功能的支持,包括 RESP3 协议的支持和分片发布/订阅功能 , 。一个显著的增强是自动分层(Auto Tiering),作为 Redis on Flash 的增强后继者,旨在优化数据存储和访问性能。此外,该版本还预览了新的集群管理器用户界面(Cluster Manager UI),并包含了 Redis Stack 7.2 的相关功能。在数据库管理方面,支持了三个 Redis 数据库版本,并更新了许可证文件结构。安全性方面,Redis 7.2.4-52 引入了 Redis ACL 选择器和增强的基于键的权限控制,同时改进了日志轮换机制,并支持多操作系统升级的集群模块 , 。
后续的 Redis 7.2.4 子版本持续进行了优化和问题修复。例如,7.2.4-64 版本(2023 年 9 月发布)改进了手动上传模块的集群恢复能力,支持包中包含了 supervisorctl status
,并允许使用 rladmin
和 REST API 配置端口范围,同时许可证 API 能够返回已使用的分片数量(RAM 和闪存), 。7.2.4-72 版本(2023 年 10 月发布)进一步增强了集群管理器 UI,包括数据库升级配置、数据库默认值、用户锁定参数和 TLS 配置的改进 , 。7.2.4-92 版本(2023 年 11 月发布)继续优化集群管理器 UI,改进了 LDAP 配置,并在模块 REST API 对象中添加了新的 capability_name
字段,同时支持在集群升级时自动移除已弃用的预定义角色和 ACL,除非它们与任何用户或数据库相关联 , 。2024 年 2 月发布的 7.2.4-105 版本允许通过 REST API 配置 LDAP 认证超时,并增加了对 RHEL 8.9 的支持 , 。最新的 7.2.4-109 版本(2024 年 5 月发布)主要进行了错误修复 , 。
对于开源 Redis 7.2 版本,例如 7.2.2(2023 年 10 月 18 日发布)和 7.2.1(2023 年 9 月 6 日发布),其主要关注点在于安全修复和 bug 修复 。Redis 7.2.2 修复了一个安全问题(CVE-2023-45145),该问题涉及 listen(2)
和 chmod(2)
调用顺序不当导致的竞态条件,可能允许其他进程绕过预期的 Unix 套接字权限。此外,该版本还修复了 MacOS 13 上的编译错误,解决了 WAITAOF
在没有写入流量且创建了新 AOF 文件但 AOF 重写无法立即启动时可能超时的问题。在 Redis 集群方面,修复了在 7.0 和 7.2 节点混合集群中运行 rebalance
命令时可能发生的崩溃,修正了 cluster shards
命令中槽位号返回类型为整数以保持与过去行为的一致性,并修复了从模块或脚本调用 CLUSTER
命令时正确返回 TLS 信息的问题。Redis 7.2.1 则修复了另一个安全问题(CVE-2023-41053),即 Redis 未能正确识别 SORT_RO
命令访问的键,可能导致授予用户执行此命令时访问未被 ACL 配置明确授权的键。同时,修复了将节点加入现有 Redis 7.0 集群时可能发生的崩溃,并更正了一些管理/配置命令的 request_policy
和 response_policy
命令提示 。
1.2 Redis 8.0 版本特性与发布状态
Redis 8.0 标志着 Redis 的一个重大转变,引入了多项核心增强功能和新特性,旨在提升性能、扩展性,并更好地支持现代应用场景,特别是人工智能(AI)相关的用例。该版本于 2025 年 5 月正式发布(GA), 。Redis 8.0 的一个核心变化是将之前作为独立模块存在的 RediSearch、RedisJSON、RedisTimeSeries 和 RedisBloom 等功能整合到 Redis 核心中,形成了统一的 Redis Open Source 发行版 , 。这意味着用户不再需要单独安装和管理这些模块,简化了部署和版本匹配的复杂性。同时,Redis 社区版(Redis Community Edition)更名为 Redis Open Source,并增加了 AGPLv3 作为新的许可选项,与原有的 RSALv2 和 SSPLv1 并存 , 。
Redis 8.0 引入了 Redis Query Engine,这是一个强大的查询引擎,支持对哈希(hashes)和 JSON 文档建立索引,并提供丰富的查询语言,支持向量搜索、全文搜索、地理空间查询和聚合操作 , 。该查询引擎旨在水平扩展和垂直扩展搜索、查询和向量工作负载 , 。此外,Redis 8.0 还引入了 8 种新的数据结构,包括 JSON 文档数据类型、时间序列数据类型,以及五种概率数据结构:布隆过滤器(Bloom filter)、布谷鸟过滤器(Cuckoo filter)、Count-min sketch、Top-k 和 t-digest , 。特别值得关注的是新增的 Vector Set 数据结构(目前处于 Beta 阶段),专为高维向量相似性搜索而设计,适用于语义搜索和推荐系统等 AI 应用场景 , 。这些新组件都包含在所有的二进制发行版中,并通过新的配置文件 redis-full.conf
进行加载和配置 , 。
在性能方面,Redis 8.0 号称实现了 Redis 历史上最大的性能飞跃,包含了超过 30 项优化,例如命令执行速度提升高达 87%,多线程工作负载下吞吐量提升高达 2 倍,副本节点内存节省高达 35%,通过水平和垂直扩展,查询处理能力提升高达 16 倍 , 。这些改进得益于新的 I/O 线程实现和更高效、健壮的复制机制 , 。Redis 8.0 还新增了三个哈希命令:HGETDEL
、HGETEX
和 HSETEX
,用于简化常见的缓存和会话管理使用模式 , 。访问控制列表(ACLs)也得到了改进,新增了 @search
、@json
、@timeseries
、@bloom
、@cuckoo
、@cms
、@topk
和 @tdigest
等类别,以支持新的数据结构和处理引擎,这些命令也被纳入现有的 @read
和 @write
等 ACL 类别中,但需要注意这些 ACL 变更可能引入破坏性更改 , 。
Redis 8.0 的发布历程包括了多个里程碑版本和候选版本。根据版本日志,8.0.0 版本于 2025 年 5 月 2 日发布 。随后的 8.0.1 版本于 2025 年 5 月 13 日发布,主要包含性能改进和 bug 修复,例如向量集合(Vector sets)的 VSIM FILTER
解析速度更快,以及查询引擎的一些修复 。8.0.2 版本于 2025 年 5 月 27 日发布,包含安全修复(CVE-2025-27151,涉及 redis-check-aof
可能导致栈溢出和潜在 RCE)和 bug 修复 , 。最新的 8.0.3 版本于 2025 年 7 月发布,也包含安全修复(CVE-2025-32023,修复 HyperLogLog
命令中的越界写入;CVE-2025-48367,修复连接接受问题)和新特性(如 VSIM
命令新增 WITHATTRIBS
选项)以及 bug 修复 (访问的文档内容显示为 2025 年 7 月 16 日,包含 8.0.3 信息)。Redis 8.0 支持从旧版本(包括不带模块的 Redis、带模块的 Redis 以及 Redis Stack 7.2 或 7.4)通过复制或持久化进行升级 , 。
2. Redis 官方核心功能对向量数据的支持
Redis 8.0 版本在其核心功能中显著增强了对向量数据的原生支持,这主要体现在新引入的 Vector Set 数据类型上。
2.1 Redis 8.0 引入 Vector Set 数据类型
Redis 8.0 版本在其核心功能中引入了一种名为 Vector Set 的全新数据结构,这标志着 Redis 在支持人工智能(AI)和机器学习(ML)应用方面迈出了重要一步 , 。Vector Set 目前处于 Beta 测试阶段,其设计目标是高效地存储和查询高维向量嵌入(vector embeddings),从而直接支持向量相似性搜索 , 。这一新数据类型的引入,使得 Redis 能够更好地应对语义搜索、推荐系统、异常检测以及其他依赖向量空间中进行相似性匹配的复杂应用场景 , 。根据 Redis 的创始人 Salvatore Sanfilippo 的介绍,Vector Set 的设计灵感来源于 Redis 已有的高效有序集合(Sorted Set)数据结构,并将其概念扩展到能够处理高维向量嵌入 。他强调,与许多其他数据库将向量相似性作为一种索引功能不同,Redis 的核心哲学是将功能实现为数据结构,Vector Set 正是这一理念的体现 。
Vector Set 的引入,使得 Redis 不仅仅是一个缓存或键值存储,而是朝着一个更全面的「智能数据平台」发展 。它直接内置于 Redis 8.0 的核心中,用户无需安装额外的模块即可使用。这意味着开发者可以利用熟悉的 Redis 命令和范式来处理向量数据,降低了学习和集成成本。Redis 官方文档指出,Vector Set 是对现有通过 Redis Query Engine(整合了 RediSearch 的功能)实现的向量搜索能力的补充 , 。这种内置的数据结构旨在提供更底层的向量操作能力,可能在某些场景下比基于模块的解决方案具有更高的性能和更紧密的集成。由于 Vector Set 仍处于 Beta 阶段,其 API 和行为在未来的版本中可能会发生变化,甚至可能出现不兼容的调整,因此用户在使用时需要关注其稳定性和后续的更新 , 。
2.2 Vector Set 的特性与用途
Vector Set 作为一种新的 Redis 数据结构,其核心特性是支持高维向量的存储和高效的相似性搜索。它专为处理向量嵌入而设计,这些嵌入通常是由机器学习模型(如文本嵌入模型、图像识别模型等)生成的数值数组,用于表示复杂数据(如文本、图像、音频)的语义信息 , 。Vector Set 允许用户将这些高维向量存储在 Redis 中,并快速找到与给定查询向量最相似的向量。这对于构建需要理解数据语义内容的应用至关重要,例如,在语义搜索中,可以将用户查询转换为向量,然后在 Vector Set 中查找语义上最接近的文档向量 , 。同样,在推荐系统中,可以将用户偏好或物品特征表示为向量,通过向量相似性计算来发现相关的物品或用户 , 。
根据 Redis 8.0 的发布说明和相关博客文章,Vector Set 的设计目标是提供高性能的向量操作。Salvatore Sanfilippo 在实现 Vector Set 时,不仅对 HNSW(Hierarchical Navigable Small World)算法进行了重新实现和优化,还引入了多线程处理以加速所有向量相似性请求,并支持 8 位和二进制量化技术,以进一步提升性能和减少存储开销 。这些底层优化使得 Vector Set 能够应对大规模向量数据集上的实时搜索需求。例如,Redis 官方宣称,在包含 10 亿个 768 维向量的数据集上,Redis 8.0 能够以高精度(至少 95%)每秒持续插入 66,000 个向量;对于精度要求较低的索引配置,每秒插入速率可达 160,000 个向量。在查询方面,对于 top 100 最近邻搜索,可以达到 90% 的准确率,中位数延迟(包括 RTT)为 200 毫秒;或者达到 95% 的准确率,中位数延迟为 1.3 秒,同时并发执行 50 个搜索查询 。
Vector Set 的用途广泛,特别适用于新兴的 AI 驱动应用。除了上述的语义搜索和推荐系统,它还可以用于异常检测(通过比较新数据点与正常行为向量的相似性)、聚类分析、图像检索、自然语言处理中的文本相似性匹配等。通过与 Redis 的其他功能(如持久化、复制、集群)结合,Vector Set 为构建可扩展、高可用的向量搜索应用提供了坚实的基础。Redis 8.0.3 版本还为 VSIM
命令(推测为 Vector Set 相关命令)新增了 WITHATTRIBS
选项,用于返回与元素关联的 JSON 属性,这进一步增强了 Vector Set 在实际应用中的灵活性和实用性,使得开发者可以将向量与其丰富的元数据关联起来进行检索 。由于 Vector Set 是 Redis 核心的一部分,它能够与 Redis 的其他数据结构和功能无缝协作,为开发者提供了一个统一的平台来处理结构化和非结构化数据。
3. RediSearch 模块对向量数据和全文索引的支持
RediSearch 作为 Redis 强大的搜索和索引模块,在 Redis 8.0 中其地位和功能得到了进一步的整合与增强,特别是在向量数据和全文索引方面。
3.1 RediSearch 在 Redis 8.0 中的整合与地位
在 Redis 8.0 版本中,RediSearch 模块的地位发生了根本性的变化。此前,RediSearch 作为一个独立的 Redis 模块提供,用户需要单独下载、安装并确保其版本与 Redis 核心兼容。然而,从 Redis 8.0 开始,RediSearch 的功能被深度整合到 Redis 核心中,成为其不可或缺的一部分,并被称为 Redis Query Engine , 。这意味着当用户安装 Redis 8.0 时,RediSearch 的功能(即 Redis Query Engine)会自动包含在内,无需额外步骤进行模块安装或管理 , 。这种整合旨在简化用户体验,消除版本不匹配的困扰,并提供一个统一的、功能强大的 Redis 发行版 。
根据 Redis 官方的说明,Redis 8.0 将 RediSearch、RedisJSON、RedisTimeSeries 和 RedisBloom 等之前独立的模块都集成到了 Redis Open Source 的核心中 , 。因此,RediSearch 提供的二级索引、全文搜索、向量相似性搜索和聚合等功能,现在都作为 Redis 8.0 的内置能力提供。GitHub 上 RediSearch 项目的 README 文件也明确指出,从 Redis 8 开始,Redis Query Engine (RediSearch) 是 Redis 的组成部分,不再需要单独安装此模块,并且不再发布独立的 RediSearch 模块版本 。这种整合使得 RediSearch 的功能能够更紧密地与 Redis 核心协同工作,例如,其命令被纳入新的 ACL 类别(如 @search
),并且可以通过统一的配置文件 redis-full.conf
进行管理 , 。这种变化也反映了 Redis 致力于将其自身从一个纯粹的键值存储或缓存解决方案,转变为一个更全面的数据平台,能够处理更复杂的查询和分析工作负载,特别是针对 AI 和实时应用场景 , 。
3.2 RediSearch 对向量相似性搜索的支持
RediSearch 模块,在 Redis 8.0 中作为内置的 Redis Query Engine 的一部分,提供了强大的向量相似性搜索(Vector Similarity Search, VSS)功能 , 。这意味着用户可以利用 RediSearch 来索引和搜索存储在 Redis 哈希(hashes)或 JSON 文档中的向量嵌入。RediSearch 允许用户定义包含向量字段的索引模式,并支持多种向量索引类型,如 FLAT
(精确搜索)和 HNSW
(近似最近邻搜索,Approximate Nearest Neighbor), 。这种灵活性使得用户可以根据其应用对搜索精度和性能的需求进行权衡。例如,FLAT
索引类型会进行穷举搜索,保证找到最精确的 K 个最近邻,但可能在大数据集上速度较慢;而 HNSW
索引类型则通过构建分层图结构来加速搜索,牺牲一定的精度以换取更高的查询吞吐量和更低的延迟。
RediSearch 的向量搜索功能支持多种距离度量标准,包括欧氏距离(Euclidean)、余弦相似度(Cosine)和内积(Inner Product),允许用户选择最适合其数据和用例的相似性计算方法 。用户可以通过 FT.SEARCH
或 FT.AGGREGATE
命令执行向量搜索查询,并且为了使用向量查询功能,需要将 DIALECT
选项设置为大于等于 2 。查询时,可以执行 K-最近邻(KNN)搜索,即查找与给定查询向量最相似的 K 个向量,并可以返回相似性得分 。此外,RediSearch 还支持向量范围查询,即查找与查询向量距离在特定范围内的所有向量 。一个关键的优势是 RediSearch 支持混合搜索(Hybrid Search),即可以将向量相似性搜索与基于文本、数值、标签、地理空间等其他元数据的过滤条件结合起来,从而构建更复杂、更精确的查询 , 。例如,可以先通过关键词过滤缩小候选集,然后再在筛选后的结果上进行向量相似性排序。这种能力使得 RediSearch 能够处理多样化的 AI 应用场景,如检索增强生成(RAG)、图像搜索、推荐系统等 , 。
3.3 RediSearch 对全文索引的支持
RediSearch 模块,作为 Redis 8.0 中内置的 Redis Query Engine 的核心组件,提供了全面且强大的全文索引和搜索功能 , 。它允许用户在存储在 Redis 哈希(hashes)或 JSON 文档中的文本字段上创建倒排索引,从而实现高效的全文检索。用户可以使用 FT.CREATE
命令定义索引模式,指定哪些字段需要被索引以及它们的类型(如 TEXT
、TAG
、NUMERIC
等)。对于文本字段,RediSearch 支持多种高级搜索特性,包括词干提取(stemming)、同义词扩展(synonyms)、模糊匹配(fuzzy matching)、前缀搜索(prefix search)和后缀搜索(suffix search), 。这些功能极大地提升了搜索的召回率和用户体验,使得用户即使输入不完整或略有错误的查询词,也能找到相关的结果。
RediSearch 的全文搜索语法非常灵活,允许构建复杂的查询。用户可以在查询中使用布尔操作符(AND, OR, NOT)来组合多个搜索词或条件 。例如,可以搜索包含特定词语 A 但不包含词语 B 的文档。此外,还支持短语搜索(将多个词用引号括起来表示一个完整的短语)、通配符搜索(使用 *
和 ?
)以及字段级搜索(指定在特定字段中查找,如 @title:redis
), 。RediSearch 还允许为不同的文本字段设置不同的权重,从而影响搜索结果的相关性排序 。例如,标题字段的权重可以设置得比内容字段更高,这样匹配标题的文档会排在更前面。在索引创建时,可以指定 SORTABLE
选项,以便能够根据特定字段对搜索结果进行排序 。RediSearch 还处理了文本的标记化(tokenization)和转义(escaping),例如,它会根据空格和特定标点符号将文本切分成词元(tokens)进行索引,同时也支持通过反斜杠来转义特殊字符,以便索引和搜索包含这些字符的文本 。需要注意的是,Redis Query Engine 目前仅支持基本多语言平面(Basic Multilingual Plane, BMP)内的 Unicode 字符(U+0000 到 U+FFFF),超出此范围的字符(如 Emoji)在特定全文搜索操作(如前缀/后缀/中缀查询、模糊查询)中可能无法被正确检索 。
4. Redis 8.0 中 RediSearch 与 Vector Set 的关系
在 Redis 8.0 中,RediSearch(作为 Redis Query Engine)与新引入的 Vector Set 数据类型共同构成了 Redis 向量数据处理能力的核心,它们之间既有分工也有协作。
4.1 RediSearch 作为查询引擎的角色
在 Redis 8.0 中,RediSearch 的功能被整合并强化为 Redis Query Engine,扮演着核心的查询处理和分析角色 , 。这个引擎不仅仅局限于传统的全文搜索,而是扩展到了更广泛的数据查询领域,包括对结构化数据(如哈希、JSON)、时间序列数据、概率数据结构以及至关重要的向量数据的查询。Redis Query Engine 允许用户在这些不同类型的数据上定义复杂的索引,并使用一种统一的、强大的查询语言来检索和操作数据 , 。它支持多种查询类型,包括精确匹配查询(基于过滤器、标签和范围)、全文搜索(支持词干提取、同义词、模糊匹配等)、地理空间查询以及向量相似性搜索 , 。此外,该引擎还具备强大的聚合功能,可以对查询结果进行分组、统计和转换。
Redis Query Engine 的一个关键特性是其可扩展性。Redis 8.0 引入了对查询引擎的水平和垂直扩展支持,这意味着它可以处理更大规模的数据集和更高的查询吞吐量 , 。水平扩展通过允许在 Redis 集群环境中执行查询来实现,从而能够管理海量数据。垂直扩展则允许通过增加单个 Redis 实例的查询处理能力来提高性能,官方宣称可提供高达 16 倍的查询处理能力提升 , 。这种可扩展性使得 Redis Query Engine 能够胜任从简单的键值查找、文档数据库查询到复杂的 AI 驱动向量搜索等多种应用场景,例如构建检索增强生成(RAG)系统或功能齐全的搜索引擎 , 。因此,RediSearch 作为 Redis Query Engine 的核心,在 Redis 8.0 中不再仅仅是一个附加模块,而是成为了 Redis 提供高级数据查询和分析能力的基石。
4.2 Vector Set 与 RediSearch 向量搜索能力的互补
在 Redis 8.0 中,新引入的 Vector Set 数据结构与 RediSearch(作为 Redis Query Engine 的一部分)提供的向量搜索能力之间存在着一种互补和增强的关系,而非简单的替代 , 。RediSearch 通过其向量索引功能,允许用户在哈希(hashes)或 JSON 文档中存储向量嵌入,并对其进行高效的 K-最近邻(KNN)搜索、向量范围查询以及与其他元数据(如文本、标签、地理空间数据)结合的混合搜索 , 。这种能力非常强大且灵活,适用于许多需要将向量搜索与复杂过滤逻辑相结合的 AI 应用场景。RediSearch 支持 FLAT
和 HNSW
等索引类型,以及多种距离度量标准,为用户提供了丰富的配置选项来优化搜索精度和性能 , 。
另一方面,Vector Set 作为一种原生的 Redis 数据结构,其设计目标是提供一种更底层、更直接的向量存储和相似性操作方式 , 。它直接从 Redis 的核心数据结构(如 Sorted Set)中汲取灵感,旨在为高维向量相似性搜索提供极致性能 , 。Redis 的创始人 Salvatore Sanfilippo 强调,Vector Set 是一个「数据结构」而非仅仅是「索引」,这体现了 Redis 将其核心能力向向量领域扩展的决心 。Vector Set 的引入,特别是其对 HNSW 算法的优化实现、多线程支持以及量化技术的应用,预示着其在纯向量相似性搜索任务上可能具有更高的性能潜力 。官方文档明确指出,Vector Set 是对 RediSearch 现有向量搜索能力的「补充」(complements), 。这意味着开发者可以根据具体需求选择使用 RediSearch 的混合搜索能力,或者利用 Vector Set 进行更专注于向量本身的快速相似性查找。例如,对于需要复杂过滤和聚合的场景,RediSearch 可能更为合适;而对于纯粹的、大规模的向量 KNN 搜索,Vector Set 可能提供更高的效率。未来,这两种能力可能会进一步融合,为用户提供更统一和强大的向量处理体验。
下表总结了 RediSearch 与 Vector Set 在向量搜索方面的主要对比:
特性 | RediSearch (Redis Query Engine) | Vector Set (Redis 8.0 Core) |
---|---|---|
定位 | 强大的查询引擎,支持多种数据类型和复杂查询 | 原生的、专门化的向量数据结构 |
数据模型 | 向量存储在哈希或 JSON 文档中,作为字段的一部分 | 字符串元素直接关联向量 |
索引 | 支持 FLAT, HNSW 等多种索引类型,可配置参数 | 基于优化的 HNSW 算法 |
查询能力 | KNN 搜索, 范围查询, 强大的混合查询 (结合文本、标签等) | KNN 搜索, 支持标量过滤器 |
性能关注点 | 综合查询性能,灵活性高 | 极致的纯向量相似性搜索性能 |
集成度 | 作为查询引擎整合在 Redis 8.0 中 | 作为核心数据结构内置于 Redis 8.0 |
适用场景 | 需要复杂过滤、聚合、与其他数据类型联合查询的 AI 应用 | 对性能有极致要求或场景相对简单的纯向量应用 |
Table 1: RediSearch 与 Vector Set 向量搜索能力对比
5. 总结与展望
Redis 的最新版本,特别是 Redis 8.0,在向量数据和全文索引能力上实现了显著的飞跃,为现代应用开发提供了强大的支持。
5.1 Redis 最新版本在向量数据和全文索引方面的能力总结
Redis 的最新版本,特别是 Redis 8.0,在向量数据和全文索引方面展现了显著的增强和整合,标志着其从一个高性能的键值存储系统向一个更全面的实时数据平台演进。在全文索引方面,通过内置的 Redis Query Engine(整合了 RediSearch 的功能),Redis 8.0 提供了强大的全文搜索能力 , 。用户可以在哈希和 JSON 文档中的文本字段上创建索引,并执行复杂的全文查询,包括词干提取、同义词扩展、模糊匹配、前缀/后缀搜索以及布尔逻辑组合等 , 。这种能力使得 Redis 能够高效地处理文本检索需求,适用于构建搜索引擎、内容发现系统等应用。
在向量数据支持方面,Redis 8.0 引入了双重能力。首先,Redis Query Engine 本身就支持向量相似性搜索,允许用户在哈希或 JSON 文档中存储向量嵌入,并利用 FLAT
或 HNSW
等索引类型进行 K-最近邻搜索、向量范围查询以及与其他元数据结合的混合搜索 , 。其次,Redis 8.0 核心新增了 Vector Set 数据结构(目前为 Beta 版),这是一个专门为高维向量相似性搜索设计的原生数据结构,旨在提供极致的向量操作性能,作为对 RediSearch 向量搜索能力的补充 , 。Vector Set 的引入,特别是其对 HNSW 算法的优化和多线程支持,显示了 Redis 在 AI 和机器学习应用领域的雄心 。这些功能的整合和新增,使得 Redis 8.0 能够更好地支持语义搜索、推荐系统、异常检测等需要处理和分析向量嵌入的现代应用场景。此外,Redis 8.0 在性能方面也进行了大量优化,包括更快的命令执行、更高的吞吐量以及更高效的复制机制,这些都为处理大规模向量和全文数据提供了坚实的基础 , 。
5.2 对未来 Redis 向量搜索功能的展望
展望未来,Redis 在向量搜索功能方面的发展前景广阔,预计将继续深化其在 AI 和机器学习生态中的角色。随着 Vector Set 数据结构从 Beta 阶段走向正式发布,可以预见其 API 将更加稳定,功能将更加完善,性能也将得到进一步优化 , 。Redis 可能会持续投入研发,提升 Vector Set 在处理超大规模、超高维度向量数据集时的效率和可扩展性,例如通过更先进的索引算法、更高效的并行处理机制以及更精细的资源管理。考虑到 Redis 创始人 Salvatore Sanfilippo 亲自参与 Vector Set 的开发,并强调其底层实现的重要性,未来可能会有更多针对特定硬件或场景的优化 。
同时,Redis Query Engine(整合 RediSearch)的向量搜索能力预计也将持续增强。未来版本可能会引入更多类型的向量索引算法,提供更灵活的查询参数配置,以及更强大的混合搜索能力,例如支持更复杂的过滤逻辑、更丰富的聚合函数以及与其他数据类型的更深层次集成。一个可能的方向是进一步融合 Vector Set 的原生能力与 RediSearch 的查询灵活性,为用户提供一个既高效又易用的统一向量搜索接口。此外,随着 AI 应用的普及,对向量数据的管理(如版本控制、生命周期管理)和安全性(如加密存储和查询)的需求也将日益增长,Redis 可能会在这些方面引入新的特性。社区和生态系统的发展也将是关键,预计会有更多的客户端库、框架(如 LangChain, LlamaIndex)和工具集成 Redis 的向量搜索功能,进一步降低开发者的使用门槛,推动 Redis 在 AI 领域的广泛应用 。Redis 8.0 已经展示了其在性能和功能上的巨大潜力,未来的版本有望在此基础上,将 Redis 打造成一个更加强大和全面的向量数据库解决方案。