|
|
|
|
|
## ADDED Requirements
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Redis 缓存连接管理
|
|
|
|
|
|
系统应当提供 Redis 连接管理能力,包括连接初始化、健康检查和连接池管理。
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Redis 连接初始化成功
|
|
|
|
|
|
- **WHEN** 应用启动且 Redis 配置有效
|
|
|
|
|
|
- **THEN** 系统成功建立 Redis 连接并输出初始化成功日志
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Redis 连接初始化失败
|
|
|
|
|
|
- **WHEN** 应用启动但 Redis 服务不可用
|
|
|
|
|
|
- **THEN** 系统输出警告日志并标记 Redis 为不可用状态,但不阻止应用启动
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: 行情数据缓存读取
|
|
|
|
|
|
系统应当优先从 Redis 读取行情数据,缓存未命中时回源 MySQL。
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Redis 缓存命中
|
|
|
|
|
|
- **WHEN** 用户请求行情数据且 Redis 中存在该数据
|
|
|
|
|
|
- **THEN** 系统直接从 Redis 返回数据,不访问 MySQL
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Redis 缓存未命中
|
|
|
|
|
|
- **WHEN** 用户请求行情数据但 Redis 中不存在该数据
|
|
|
|
|
|
- **THEN** 系统从 MySQL 读取数据,回填到 Redis(TTL 30 天),并返回数据
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Redis 缓存 TTL 管理
|
|
|
|
|
|
系统应当为缓存数据设置 30 天过期时间,过期后自动清理。
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: 缓存数据过期
|
|
|
|
|
|
- **WHEN** 缓存数据超过 30 天未访问
|
|
|
|
|
|
- **THEN** Redis 自动清理该数据,下次访问时从 MySQL 重新加载
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: 缓存数据续期
|
|
|
|
|
|
- **WHEN** 用户访问已缓存的行情数据
|
|
|
|
|
|
- **THEN** 系统返回缓存数据,TTL 保持为 30 天(不续期)
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Redis 缓存失效
|
|
|
|
|
|
系统应当在数据更新时主动失效相关缓存,保证数据一致性。
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: 刷新接口触发缓存失效
|
|
|
|
|
|
- **WHEN** 用户调用刷新接口更新行情数据
|
|
|
|
|
|
- **THEN** 系统先删除 Redis 中对应的缓存数据,再执行双写流程
|