Redis 8.0:
向量数据与全文索引的
革命性演进
深入解析 Redis 最新版本在人工智能时代的数据处理能力变革
性能突破
核心特性
- Vector Set 数据结构
- Redis Query Engine
- 内置模块整合
- 多线程支持
Redis 最新版本概述
Redis 作为一款广受欢迎的开源内存数据结构存储,其最新版本在性能、功能和易用性方面均有显著提升,特别是在支持现代应用如人工智能和实时数据分析方面。
核心洞察
Redis 8.0 标志着 Redis 的一个重大转变,引入了多项核心增强功能和新特性,旨在提升性能、扩展性,并更好地支持现代应用场景,特别是人工智能(AI)相关的用例。
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 的增强后继者
- 新的集群管理器用户界面预览
- Redis Stack 7.2 相关功能
- 三个 Redis 数据库版本支持
安全性改进
- Redis ACL 选择器
- 增强的基于键的权限控制
- 改进的日志轮换机制
- 多操作系统升级的集群模块
后续的 Redis 7.2.4 子版本持续进行了优化和问题修复。例如,7.2.4-64 版本(2023 年 9 月发布)改进了手动上传模块的集群恢复能力,支持包中包含了
supervisorctl status
,并允许使用
rladmin
和 REST API 配置端口范围,同时许可证 API 能够返回已使用的分片数量(RAM 和闪存)。
安全修复重点
Redis 7.2.2 修复了CVE-2023-45145安全问题,涉及
listen(2)
和
chmod(2)
调用顺序不当导致的竞态条件,可能允许其他进程绕过预期的 Unix 套接字权限。Redis 7.2.1 修复了CVE-2023-41053,即 Redis 未能正确识别
SORT_RO
命令访问的键。
Redis 8.0 版本特性与发布状态
Redis 8.0 标志着 Redis 的一个重大转变,引入了多项核心增强功能和新特性,旨在提升性能、扩展性,并更好地支持现代应用场景,特别是人工智能(AI)相关的用例。该版本于 2025 年 5 月正式发布(GA) [5], [6]。
模块整合
将 RediSearch、RedisJSON、RedisTimeSeries 和 RedisBloom 等功能整合到 Redis 核心中
查询引擎
引入 Redis Query Engine,支持向量搜索、全文搜索、地理空间查询和聚合操作
性能飞跃
超过 30 项优化,命令执行速度提升高达 87%,查询处理能力提升高达 16 倍
Redis 官方核心功能对向量数据的支持
Redis 8.0 版本在其核心功能中显著增强了对向量数据的原生支持,这主要体现在新引入的 Vector Set 数据类型上。
Redis 8.0 引入 Vector Set 数据类型
设计理念
Vector Set 目前处于 Beta 测试阶段,其设计目标是高效地存储和查询高维向量嵌入(vector embeddings),从而直接支持向量相似性搜索 [6], [21]。
根据 Redis 的创始人 Salvatore Sanfilippo 的介绍,Vector Set 的设计灵感来源于 Redis 已有的高效有序集合(Sorted Set)数据结构,并将其概念扩展到能够处理高维向量嵌入 [23]。
创始人观点
"与许多其他数据库将向量相似性作为一种索引功能不同,Redis 的核心哲学是将功能实现为数据结构,Vector Set 正是这一理念的体现"— Salvatore Sanfilippo
Vector Set 的引入,使得 Redis 不仅仅是一个缓存或键值存储,而是朝着一个更全面的"智能数据平台"发展 [21]。它直接内置于 Redis 8.0 的核心中,用户无需安装额外的模块即可使用。
Vector Set 的特性与用途
Vector Set 作为一种新的 Redis 数据结构,其核心特性是支持高维向量的存储和高效的相似性搜索。它专为处理向量嵌入而设计,这些嵌入通常是由机器学习模型(如文本嵌入模型、图像识别模型等)生成的数值数组,用于表示复杂数据(如文本、图像、音频)的语义信息 [12], [19]。
技术优化
HNSW 算法优化
对 HNSW(Hierarchical Navigable Small World)算法进行了重新实现和优化
多线程处理
引入多线程处理以加速所有向量相似性请求
量化技术
支持 8 位和二进制量化技术,提升性能和减少存储开销
性能指标
主要应用场景
语义搜索
将用户查询转换为向量,查找语义最接近的文档
推荐系统
通过向量相似性计算发现相关物品或用户
异常检测
比较新数据点与正常行为向量的相似性
图像检索
基于内容的图像相似性搜索
Redis 8.0.3 版本还为
VSIM
命令(推测为 Vector Set 相关命令)新增了
WITHATTRIBS
选项,用于返回与元素关联的 JSON 属性,这进一步增强了 Vector Set 在实际应用中的灵活性和实用性 [6]。
RediSearch 模块对向量数据和全文索引的支持
RediSearch 作为 Redis 强大的搜索和索引模块,在 Redis 8.0 中其地位和功能得到了进一步的整合与增强,特别是在向量数据和全文索引方面。
RediSearch 在 Redis 8.0 中的整合与地位
在 Redis 8.0 版本中,RediSearch 模块的地位发生了根本性的变化。此前,RediSearch 作为一个独立的 Redis 模块提供,用户需要单独下载、安装并确保其版本与 Redis 核心兼容。然而,从 Redis 8.0 开始,RediSearch 的功能被深度整合到 Redis 核心中,成为其不可或缺的一部分,并被称为 Redis Query Engine [6], [8]。
整合优势
- 无需单独安装和管理
- 消除版本不匹配问题
- 统一的 Redis 发行版体验
- 更紧密的核心集成
内置功能
- 二级索引
- 全文搜索
- 向量相似性搜索
- 聚合功能
根据 Redis 官方的说明,Redis 8.0 将 RediSearch、RedisJSON、RedisTimeSeries 和 RedisBloom 等之前独立的模块都集成到了 Redis Open Source 的核心中 [6], [24]。
GitHub 上 RediSearch 项目的 README 文件也明确指出,从 Redis 8 开始,Redis Query Engine (RediSearch) 是 Redis 的组成部分,不再需要单独安装此模块,并且不再发布独立的 RediSearch 模块版本 [26]。
RediSearch 对向量相似性搜索的支持
RediSearch 模块,在 Redis 8.0 中作为内置的 Redis Query Engine 的一部分,提供了强大的向量相似性搜索(Vector Similarity Search, VSS)功能 [11], [17]。
索引类型
FLAT
精确搜索,保证找到最精确的 K 个最近邻
HNSW
近似最近邻搜索,牺牲精度换取更高查询吞吐量
距离度量
- 欧氏距离(Euclidean)
- 余弦相似度(Cosine)
- 内积(Inner Product)
查询能力
- K-最近邻(KNN)搜索
- 向量范围查询
- 混合搜索(Hybrid Search)
- 返回相似性得分
混合搜索优势
一个关键的优势是 RediSearch 支持混合搜索(Hybrid Search),即可以将向量相似性搜索与基于文本、数值、标签、地理空间等其他元数据的过滤条件结合起来,从而构建更复杂、更精确的查询 [13], [17]。
例如,可以先通过关键词过滤缩小候选集,然后再在筛选后的结果上进行向量相似性排序。这种能力使得 RediSearch 能够处理多样化的 AI 应用场景,如检索增强生成(RAG)、图像搜索、推荐系统等。
用户可以通过
FT.SEARCH
或
FT.AGGREGATE
命令执行向量搜索查询,并且为了使用向量查询功能,需要将
DIALECT
选项设置为大于等于 2 [17]。
RediSearch 对全文索引的支持
RediSearch 模块,作为 Redis 8.0 中内置的 Redis Query Engine 的核心组件,提供了全面且强大的全文索引和搜索功能 [14], [15]。
高级搜索特性
词干提取(Stemming)
将单词还原为词干形式,提高搜索召回率
同义词扩展
支持同义词扩展,增强搜索灵活性
模糊匹配
支持模糊匹配,容忍拼写错误
前缀/后缀搜索
支持前缀和后缀搜索
查询语法
AND, OR, NOT
布尔操作符
"phrase search"
短语搜索
wild*
通配符搜索
@title:redis
字段级搜索
SORTABLE
可排序字段
重要说明
Redis Query Engine 目前仅支持基本多语言平面(Basic Multilingual Plane, BMP)内的 Unicode 字符(U+0000 到 U+FFFF),超出此范围的字符(如 Emoji)在特定全文搜索操作(如前缀/后缀/中缀查询、模糊查询)中可能无法被正确检索 [14]。
Redis 8.0 中 RediSearch 与 Vector Set 的关系
在 Redis 8.0 中,RediSearch(作为 Redis Query Engine)与新引入的 Vector Set 数据类型共同构成了 Redis 向量数据处理能力的核心,它们之间既有分工也有协作。
RediSearch 作为查询引擎的角色
这种可扩展性使得 Redis Query Engine 能够胜任从简单的键值查找、文档数据库查询到复杂的 AI 驱动向量搜索等多种应用场景,例如构建检索增强生成(RAG)系统或功能齐全的搜索引擎 [8], [20]。
Vector Set 与 RediSearch 向量搜索能力的互补
在 Redis 8.0 中,新引入的 Vector Set 数据结构与 RediSearch(作为 Redis Query Engine 的一部分)提供的向量搜索能力之间存在着一种互补和增强的关系,而非简单的替代 [8], [20]。
RediSearch 向量搜索
- 向量存储在哈希或 JSON 文档中
- 支持 FLAT, HNSW 等多种索引类型
- 强大的混合查询能力
- 结合文本、标签、地理空间等过滤
- 适用于复杂 AI 应用场景
Vector Set
- 原生的 Redis 数据结构
- 字符串元素直接关联向量
- 基于优化的 HNSW 算法
- 极致的纯向量搜索性能
- 适用于性能要求极高的应用
RediSearch 与 Vector Set 向量搜索能力对比
特性 | RediSearch (Redis Query Engine) | Vector Set (Redis 8.0 Core) |
---|---|---|
定位 | 强大的查询引擎,支持多种数据类型和复杂查询 | 原生的、专门化的向量数据结构 |
数据模型 | 向量存储在哈希或 JSON 文档中,作为字段的一部分 | 字符串元素直接关联向量 |
索引 | 支持 FLAT, HNSW 等多种索引类型,可配置参数 | 基于优化的 HNSW 算法 |
查询能力 | KNN 搜索, 范围查询, 强大的混合查询 | KNN 搜索, 支持标量过滤器 |
性能关注点 | 综合查询性能,灵活性高 | 极致的纯向量相似性搜索性能 |
适用场景 | 需要复杂过滤、聚合、与其他数据类型联合查询的 AI 应用 | 对性能有极致要求或场景相对简单的纯向量应用 |
总结与展望
能力总结
Redis 的最新版本,特别是 Redis 8.0,在向量数据和全文索引方面展现了显著的增强和整合,标志着其从一个高性能的键值存储系统向一个更全面的实时数据平台演进。
全文索引方面
通过内置的 Redis Query Engine,提供强大的全文搜索能力,支持词干提取、同义词扩展、模糊匹配等高级特性
向量数据支持
引入双重能力:Redis Query Engine 的向量相似性搜索和 Vector Set 原生数据结构
性能优化
大量性能优化,为处理大规模向量和全文数据提供坚实基础
未来展望
展望未来,Redis 在向量搜索功能方面的发展前景广阔,预计将继续深化其在 AI 和机器学习生态中的角色。
Vector Set 成熟化
从 Beta 阶段走向正式发布,API 更加稳定,功能更加完善
查询引擎增强
引入更多向量索引算法,提供更灵活的查询参数配置
能力融合
进一步融合 Vector Set 的原生能力与 RediSearch 的查询灵活性
管理与安全
引入向量数据管理和安全性方面的新特性
核心结论
Redis 8.0 通过其核心功能和整合的 RediSearch,为处理现代 AI 应用中的向量数据和全文检索需求提供了全面的解决方案。从高性能的 Vector Set 数据结构到强大的 Redis Query Engine,Redis 正在重新定义自己在人工智能时代的数据处理能力边界。