sequenceDiagram
participant C as Client
participant S as Server
participant R as Redis
participant M as MySQL
C->>S: 请求收藏列表(user_id, page, size)
S->>R: EXISTS favorite_meta:{user_id}
alt 缓存存在
>>S: 存在
S->>R: HGETALL favorite_meta:{user_id}
R-->>S: 返回元数据
S->>R: MGET favorite_detail:{item_ids}
S->>C: 返回完整列表
else 缓存不存在
R-->>S: 不存在
S->>M: 查询MySQL获取数据
M-->>S: 返回结果集
S->>R: HSET favorite_meta:{user_id} + EXPIRE
S->>R: SET favorite_detail:{item_ids} + EXPIRE
S->>C: 返回结果
end