REDis
This commit is contained in:
@@ -68,6 +68,7 @@
|
||||
- HttpOnly、SameSite 登录 Cookie
|
||||
- 服务端角色权限校验
|
||||
- SQLite / MySQL 8.4 双数据库持久化
|
||||
- 可选 Redis 公开接口缓存,支持写后版本失效、热点请求合并和故障回源
|
||||
- 规范关系模型、外键、唯一约束和业务索引
|
||||
- 业务写入与审计日志使用原子事务提交
|
||||
- 关键管理操作审计日志
|
||||
@@ -146,6 +147,20 @@ npm start
|
||||
|
||||
也可以只设置标准连接地址 `DATABASE_URL=mysql://user:password@host:3306/database`。完整模板见 `.env.example`;将模板复制为 `.env` 后取消 MySQL 配置项的注释并填写实际连接信息即可。生产部署仍建议由部署平台注入环境变量,避免在服务器文件中保存密码。
|
||||
|
||||
### Redis 缓存(可选)
|
||||
|
||||
配置 `REDIS_URL` 后,应用会缓存公开首页、已发布公告详情和每名考生的已发布成绩查询。公开数据默认 TTL 为 60 秒,成绩默认 TTL 为 24 小时;成绩录入/发布、批量导入、考试归档和成绩复议会自动使成绩缓存失效,超级管理员也可以在成绩管理中心手动刷新全部成绩缓存。Redis 在启动或运行期间不可用时,接口会自动回源数据库,不影响登录、报名和管理功能。
|
||||
|
||||
```powershell
|
||||
$env:REDIS_URL = 'redis://127.0.0.1:6379/0'
|
||||
$env:REDIS_CACHE_PREFIX = 'exam-information'
|
||||
$env:REDIS_CACHE_TTL_SECONDS = '60'
|
||||
$env:REDIS_RESULTS_CACHE_TTL_SECONDS = '86400'
|
||||
npm start
|
||||
```
|
||||
|
||||
生产环境可使用 `redis://` 或启用 TLS 的 `rediss://` 连接地址,并通过 `REDIS_CONNECT_TIMEOUT_MS` 调整启动连接超时。
|
||||
|
||||
### 导入服务器 MySQL 测试数据
|
||||
|
||||
先停止正在运行的应用进程,确认服务器 `.env` 中已经设置 `DATABASE_CLIENT=mysql` 及完整 MySQL 连接参数,然后执行:
|
||||
|
||||
Reference in New Issue
Block a user