连接到外部 Redis 数据库
LangSmith 使用 Redis 来支持我们的队列/缓存操作。默认情况下,LangSmith 自托管将使用内部 Redis 实例。但是,您可以配置 LangSmith 使用外部 Redis 实例(强烈建议在生产环境中使用)。通过配置外部 Redis 实例,您可以更轻松地管理 Redis 实例的备份、扩展和其他操作任务。
要求
- 您的 LangSmith 实例可以网络访问的已配置 Redis 实例。我们建议使用托管 Redis 服务,例如
- 注意:我们仅正式支持 Redis 版本 >= 5。
- 我们不支持 Redis 集群。
- 默认情况下,我们建议至少具有 2 个 vCPU 和 8GB 内存的实例。但是,实际要求将取决于您的跟踪工作负载。我们建议监控您的 Redis 实例并在需要时进行扩展。
不支持 Redis 集群
某些托管 Redis 服务的层级可能在底层使用 Redis 集群,但您可以指向集群中的单个节点。例如,在 Azure Cache for Redis 上,Premium 及以上层级使用 Redis 集群,因此您需要使用较低的层级。
连接字符串
我们使用 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 实例。