# Redis 对接规范 ## Purpose 本规范定义本服务按协议向 Redis 写入“项目心跳”(STRING) 与“项目控制台”(LIST) 两个 key 的数据结构与频率,并在 Redis 不可用时保持无人值守可用性(不阻塞启动、后台重连)。 ## Requirements ### Requirement: 心跳 Key 写入 系统 MUST 按协议周期性写入 Redis STRING 心跳 Key。 #### Scenario: 定期刷新心跳 - **WHEN** 服务运行中 - **THEN** 系统应每 3 秒(可配置)执行一次 `SET ${projectName}_项目心跳 ` - **AND** JSON 必须包含 `apiBaseUrl` 与 `lastActiveAt`(毫秒时间戳) - **AND** value 使用 UTF-8 编码 - **AND** 可选设置 TTL(例如 EX 30) ### Requirement: 控制台日志队列写入 系统 MUST 按协议向 Redis LIST 追加控制台日志。 #### Scenario: 追加日志 - **WHEN** 发生关键事件(启动成功/错误/连接状态变化) - **THEN** 系统应执行 `RPUSH ${projectName}_项目控制台 ` - **AND** JSON 必须包含 `timestamp`(ISO-8601)、`level`、`message` - **AND** `level` 建议取值 `info|warn|error|debug` ### Requirement: Redis 异常处理 系统 MUST 在 Redis 不可用时进行后台重连,且不得阻塞主服务启动。 #### Scenario: Redis 连接中断 - **WHEN** Redis 连接中断 - **THEN** 系统应自动重连 - **AND** 不应导致主进程崩溃