graph TB
A[客户端请求] --> B[应用层缓存]
B --> C{缓存命中?}
C -->|是| D[返回缓存数据]
C -->|否| E[Redis缓存]
E --> F{Redis命中?}
F -->|是| G[更新应用层缓存]
F -->|否| H[数据库查询]
H --> I[更新Redis缓存]
I --> G
G --> D
subgraph "缓存层级"
J[L1: 应用内存缓存]
K[L2: Redis分布式缓存]
L[L3: 数据库缓存]
end
graph TB
A[缓存预热请求] --> B[预热管理器]
B --> C{任务优先级}
C -->|高优先级| D[立即执行]
C -->|低优先级| E[队列等待]
D --> F[数据加载器]
E --> F
F --> G[缓存写入]
G --> H[统计更新]
I[数据更新请求] --> J[更新管理器]
J --> K{更新策略}
K -->|写穿透| L[同步更新缓存和数据源]
K -->|写回| M[更新缓存,异步写数据源]
K -->|写绕过| N[只更新数据源]
L --> O[完成]
M --> P[写回队列]
P --> Q[批量刷新]
Q --> O
N --> O
graph TB
A[缓存操作] --> B[性能监控器]
B --> C[指标收集]
C --> D[延迟统计]
C --> E[吞吐量统计]
C --> F[命中率统计]
C --> G[内存使用统计]
D --> H[性能分析器]
E --> H
F --> H
G --> H
H --> I{性能评估}
I -->|正常| J[继续监控]
I -->|异常| K[生成告警]
I -->|需优化| L[优化建议]
K --> M[告警通知]
L --> N[优化报告]
subgraph "监控指标"
O[命中率 Hit Rate]
P[延迟 Latency]
Q[吞吐量 Throughput]
R[内存使用 Memory]
end