You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
buffer_platform/openspec/specs/redis-cache-layer/spec.md

42 lines
1.7 KiB

## 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 读取数据,回填到 RedisTTL 30 天),并返回数据
### Requirement: Redis 缓存 TTL 管理
系统应当为缓存数据设置 30 天过期时间,过期后自动清理。
#### Scenario: 缓存数据过期
- **WHEN** 缓存数据超过 30 天未访问
- **THEN** Redis 自动清理该数据,下次访问时从 MySQL 重新加载
#### Scenario: 缓存数据续期
- **WHEN** 用户访问已缓存的行情数据
- **THEN** 系统返回缓存数据TTL 保持为 30 天(不续期)
### Requirement: Redis 缓存失效
系统应当在数据更新时主动失效相关缓存,保证数据一致性。
#### Scenario: 刷新接口触发缓存失效
- **WHEN** 用户调用刷新接口更新行情数据
- **THEN** 系统先删除 Redis 中对应的缓存数据,再执行双写流程