Redis WebSocket 支持
Redis 在 OPL 数据空间里主要有两类用途:
- 应用状态 / session / token 相关存储
- 多实例、多 worker 下的 WebSocket 协调
什么时候必须要 Redis
单实例、单 worker
如果你是默认的单实例 + UVICORN_WORKERS=1,Redis 不是基础功能必需品。
注意
但如果没有 Redis,注销不会立即吊销 JWT,token 会持续有效直到自然过期。
多 worker / 多实例 / 高可用
以下场景必须上 Redis:
UVICORN_WORKERS > 1- Kubernetes 多 pod
- Docker Swarm 多副 本
- 任意并发跑多个 OPL 数据空间进程的部署
Redis 服务端自身要配好
为了避免 max number of clients reached,建议:
maxclients 10000
timeout 1800
Docker 示例:
command: "valkey-server --save 30 1 --maxclients 10000 --timeout 1800"OPL 数据空间侧变量
REDIS_URL=redis://redis-valkey:6379/0
ENABLE_WEBSOCKET_SUPPORT=true
WEBSOCKET_MANAGER=redis
WEBSOCKET_REDIS_URL=redis://redis-valkey:6379/1
如果你走反代,还要正确设置 CORS_ALLOW_ORIGIN。