Redis 很高兴宣布推出 vector sets,这是一种为向量相似性而设计的突破性数据类型。vector sets 受 Redis 核心原则的启发,由 Redis 的原创者 Salvatore Sanfilippo 开发,增强了 Redis 作为现代 AI 应用通用解决方案的能力。vector sets 通过为特定用例提供对 Redis 友好的替代方案,补充了 Redis 中现有的强大向量搜索功能(Redis Query Engine)。vector sets 将在 Redis 8 Community Edition 的 Beta 版本中提供。这意味着根据您的反馈,我们可能会在未来版本中更改甚至破坏这些功能和 API。
Redis 的创建者 Salvatore Sanfilippo(又名 ‘antirez’)最近重新加入公司,并创造了这种创新的数据类型;他的专业知识促成了一个既简单又直观的 API,这反映了 Redis 在提供高性能解决方案的同时保持最低复杂度的理念。
vector sets 的灵感来源于 sorted sets,它是 Redis 的一个基本数据类型,以其处理有序集合的高效率而闻名。vector sets 扩展了这一概念,允许存储和查询高维向量嵌入,这对于各种 AI 和机器学习应用至关重要。就像 sorted set 一样,vector set 具有与向量而不是分数关联的字符串元素。vector sets 的根本目标是能够添加项目,然后获取与指定向量最相似的部分已添加项目。
考虑一下您想要存储和检索各种文本描述或图像的向量嵌入的场景。使用 vector sets,您可以轻松存储这些嵌入并执行高效的相似性搜索。vector sets 还实现了一些令人兴奋的附加功能,包括
以下是一些您可以使用 vector set 的命令示例。如需完整列表,请参阅我们的此处的文档。
# Add keys to the vector set
VADD myset VALUES 4 0.5 1.2 0.75 3.8 element1
VADD myset VALUES 4 0.9 1.5 0.66 4.5 element2
VADD myset VALUES 4 0.4 1.9 0.92 3.6 element3
VADD myset VALUES 4 0.7 1.3 0.85 4.1 element4
# Retrieve the top 3 most similar keys to a given query vector with similarity scores
VSIM myset ELE element4 WITHSCORES COUNT 3
# Remove a key from the set
VREM myset element1
# Count the number of elements in the vector set
VCARD myset
# Show info about a vector set including stored elements, vector dimensions, quantization etc.
VINFO myset
Redis 现在提供两种互补的搜索功能——用于全面、企业级搜索和查询的 Redis Query Engine,以及作为原生数据类型的新 vector set,它轻量且专注于向量相似性搜索。
Redis Query Engine 在大型可扩展数据集上擅长快速执行全文、数值、向量和混合查询,而 vector sets 则提供了一种简化的替代方案,具有简单的 API。它们共同巩固了 Redis 对性能、灵活性和开发者友好型搜索解决方案的承诺。
当您的应用程序 主要关注向量相似性用例,而无需高级搜索和查询(尤其是涉及全文或混合查询的用例)时,vector sets 可能是个不错的选择。如果您正在构建 由 AI 驱动的应用 并希望以一种 轻量、高效 的方式存储和查询高维嵌入,vector sets 可以提供一种 简单、精简 的替代方案。
与此同时,包含在Redis 8 中的 Redis Query Engine 是市场上最快的搜索和向量数据库,为多种场景提供企业级解决方案,包括
开始使用 vector sets 非常简单。只需部署最新版本的 Redis 即可开始。有关存储和查询向量、配置选项和最佳实践的详细说明,请访问此处的文档。
最后,我们还将开始为各种 Redis 客户端库添加支持,首先是支持 redis-py。
我们非常激动地看到开发者社区将使用 vector sets 构建出什么。我们期待您的反馈和创新,因为我们将继续发展 Redis,以满足技术领域不断变化的需求。我们也鼓励您通过我们的 GitHub issues 或社区论坛分享您的反馈。祝您构建愉快。