连接到外部 Redis 数据库
LangSmith 使用 Redis 来支持其队列/缓存操作。默认情况下,LangSmith 自托管版本将使用内部的 Redis 实例。 但是,您可以配置 LangSmith 以使用外部 Redis 实例(在生产环境中强烈建议使用)。通过配置外部 Redis 实例,您可以更轻松地管理您的 Redis 实例的备份、扩展和其他运维任务。
需求
- 一个由 LangSmith 实例提供网络访问权限的已配置 Redis 实例。我们建议使用托管式 Redis 服务,例如:
- 注意:我们仅官方支持 Redis 5.0 及以上版本。
- 我们不支持 Redis 集群。
- 默认情况下,我们建议实例至少配备 2 个 vCPU 和 8GB 内存。然而,实际需求将取决于您的追踪工作负载。我们建议您监控 Redis 实例并根据需要扩展资源。
Redis 集群不受支持
某些级别的托管 Redis 服务可能在底层使用 Redis Cluster,但您可以指向集群中的单个节点。 例如在 Azure Cache for Redis 上,Premium 级别及以上使用 Redis Cluster,因此您需要使用较低级别的服务。
连接字符串
我们使用 redis-py 连接到 Redis。该库支持多种连接字符串格式。您可以在此处查看有关连接字符串格式的更多信息。
您需要为 Redis 实例组装连接字符串。该连接字符串应包含以下信息:
- 主机
- 数据库
- 端口
- URL 参数
这将采取以下形式:
"redis://host:port/db?<url_params>"
一个示例连接字符串可能如下所示:
"redis://langsmith-redis:6379/0"
要使用 SSL,您可以使用 rediss:// 前缀。一个带有 SSL 的连接字符串示例可能如下所示:
"rediss://langsmith-redis:6380/0?password=foo"
配置
手握连接字符串后,您可以配置 LangSmith 实例以使用外部 Redis 实例。您可以通过修改 LangSmith Helm Chart 安装的 values 文件或 Docker 安装的 .env 文件来实现这一点。
- Helm
- Docker
redis:
external:
enabled: true
connectionUrl: "Your connection url"
# In your .env file
REDIS_DATABASE_URI="Your connection url"
配置完成后,您应该能够重新安装您的 LangSmith 实例。如果所有配置均正确,您的 LangSmith 实例现在应使用您外部的 Redis 实例。