Repository navigation
Redis
pollybird edited this page Sep 11, 2026
·
2 revisions
v2.5.0 引入 Redis 作为可选的缓存后端与服务端 Session 存储,适合多实例负载均衡场景。未启用 Redis 时回退 SimpleCache + Cookie Session,单机部署零依赖。
应用启动时检测环境变量 REDIS_URL:
- 有值且 Redis 可达 → 启用 RedisCache(Flask-Caching)+ 服务端 Session(Flask-Session 存 Redis)
- 有值但不可达 → 回退 SimpleCache + Cookie Session,日志输出警告
- 未设置 → SimpleCache + Cookie Session(与 v2.4.x 行为一致)
`# 源码部署:设置环境变量后启动
export REDIS_URL=redis://127.0.0.1:6379/0
python run.py
# 带密码的 Redis
export REDIS_URL=redis://:yourpassword@127.0.0.1:6379/0
# Docker 部署:install.sh 交互选择启用 Redis
bash docker/install.sh
# 自动在 .env 中写入 REDIS_URL,启动时携带 --profile redis
# 独立 compose 文件:取消注释文件中的 redis 服务块与 redis_data 卷
# docker-compose.mysql.yml 或 docker-compose.postgresql.yml 内已预置(默认注释)
# 也可用通用编排文件:
docker compose --profile mysql --profile redis up -d`
后台「系统设置 → Redis 缓存」提供只读状态展示:
- 已启用(绿色):显示连接地址,说明 RedisCache + 服务端 Session 已生效
- 未启用(黄色):提示安装 Redis 并设置环境变量的步骤
- 连接失败(红色):显示错误信息,引导排查 Redis 服务状态与连接参数
Redis 后端在应用启动时初始化,运行时不可切换。修改
REDIS_URL后需重启应用生效。后台不提供手动开关,避免运行时切换导致缓存与 Session 状态不一致。
- Redis 配置密码(
requirepass或 ACL),REDIS_URL中携带密码 - Redis 仅监听内网地址(
bind 127.0.0.1或内网 IP) - 生产环境通过防火墙限制 6379 端口访问
-
REDIS_URL含密码属敏感信息,.env已在.gitignore中排除