连接外部 Redis 数据库
LangSmith 使用 Redis 来支持我们的队列/缓存操作。默认情况下,LangSmith 自托管版将使用内部 Redis 实例。但是,您可以配置 LangSmith 使用外部 Redis 实例(强烈建议在生产环境中这样做)。通过配置外部 Redis 实例,您可以更轻松地管理 Redis 实例的备份、扩展和其他操作任务。
要求
- 一个已预置的 Redis 实例,您的 LangSmith 实例将能够访问该实例的网络。我们建议使用托管 Redis 服务,例如:
- 注意:我们仅官方支持 Redis 5 及以上版本。
- 我们不支持 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 实例。