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

1.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 中对应的缓存数据,再执行双写流程