本笔记本介绍如何将Redis作为向量数据库与OpenAI嵌入结合使用。Redis是一个可扩展的实时数据库,在使用RediSearch模块时可作为向量数据库。RediSearch模块允许您对Redis中的向量进行索引和搜索。本笔记本将展示如何使用RediSearch模块来索引和搜索通过OpenAI API创建并存储在Redis中的向量。
什么是Redis?
大多数来自网络服务背景的开发者可能都熟悉Redis。Redis本质上是一个开源键值存储系统,可用作缓存、消息代理和数据库。开发者选择Redis是因为它速度快、拥有庞大的客户端库生态系统,并且多年来一直被大型企业广泛部署。
除了Redis的传统用途外,Redis还提供了Redis Modules,这是一种通过新数据类型和命令来扩展Redis的方式。示例模块包括RedisJSON、RedisTimeSeries、RedisBloom和RediSearch。
什么是RediSearch?
RediSearch是一个Redis模块,它为Redis提供查询、二级索引、全文搜索和向量搜索功能。要使用RediSearch,您需要先在Redis数据上声明索引。然后就可以使用RediSearch客户端查询这些数据。有关RediSearch功能集的更多信息,请参阅README或RediSearch文档。
部署选项
有多种方式可以部署Redis。对于本地开发而言,最快的方法是使用Redis Stack docker容器,这也是我们将在此采用的方式。Redis Stack包含多个Redis模块,这些模块可以协同工作,构建一个快速的多模型数据存储和查询引擎。
对于生产环境用例,最简单的入门方式是使用Redis Cloud服务。Redis Cloud是一项全托管的Redis服务。您也可以通过Redis Enterprise在自有基础设施上部署Redis。Redis Enterprise是支持部署在Kubernetes、本地或云端的全托管Redis服务。
此外,每个主要云服务提供商(AWS Marketplace、Google Marketplace或Azure Marketplace)都在其应用市场中提供Redis Enterprise服务。