Redis (Remote Dictionary Server) 是一个开源的内存存储,用作分布式内存键值数据库、缓存和消息代理,具有可选的持久性。由于它将所有数据保存在内存中,并且由于其设计,Redis 提供了低延迟的读写,使其特别适用于需要缓存的用例。Redis 是最流行的 NoSQL 数据库,也是整体上最流行的数据库之一。
本页面介绍了如何在 LangChain 中使用 Redis 生态系统。它分为两部分:安装和设置,然后是特定 Redis 包装器的引用。
安装和设置
安装 Python SDK 和 LangChain Redis 集成连接
我们需要一个 Redis URL 连接字符串来连接到数据库,支持独立的 Redis 服务器或具有复制和 Redis Sentinel 的高可用性设置。Redis 独立连接 URL
对于独立的Redis 服务器,可以使用官方的 Redis 连接 URL 格式,如 Python redis 模块的“from_url()”方法 Redis.from_url 中所述。 示例:redis_url = "redis://:secret-pass@localhost:6379/0"Redis Sentinel 连接 URL
对于 Redis Sentinel 设置,连接方案是“redis+sentinel”。只要没有可用的 Sentinel 连接 URL,这就是对官方 IANA 注册协议方案的非官方扩展。 示例:redis_url = "redis+sentinel://:secret-pass@sentinel-host:26379/mymaster/0" 格式为 redis+sentinel://$USERNAME:$PASSWORD@$HOST_OR_IP:$PORT/$SERVICE_NAME/$DB_NUMBER,如果未明确设置,“service-name = mymaster”和“db-number = 0”为默认值。服务名称是 Sentinel 中配置的 Redis 服务器监控组名称。 当前的 URL 格式将连接字符串限制为一个 Sentinel 主机(不能给出列表),并且 Redis 服务器和 Sentinel 必须设置相同的密码(如果使用)。Redis Cluster 连接 URL
Redis 集群目前不支持所有需要“redis_url”参数的方法。使用 Redis 集群的唯一方法是使用接受预配置 Redis 客户端的 LangChain 类,例如RedisCache(如下示例)。
缓存
缓存包装器允许将 Redis 用作 LLM 提示和响应的远程、低延迟、内存缓存。标准缓存
标准缓存是 Redis 在生产环境中对 开源 和 企业 用户而言最常用的功能。语义缓存
语义缓存允许用户根据用户输入与先前缓存结果之间的语义相似性来检索缓存的提示。在底层,它将 Redis 作为缓存和向量存储器进行融合。向量存储
向量存储器包装器将 Redis 转换为用于语义搜索或 LLM 内容检索的低延迟 向量数据库。检索器
Redis 向量存储器检索器包装器将向量存储器类泛化以执行低延迟文档检索。要创建检索器,只需在基本向量存储器类上调用.as_retriever() 即可。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。