3.返回缓存数据(命中)
4.查询MySQL获取合同数据
3.返回缓存数据(未命中)
8.返回合同数据
否
场景2 - 缓存未命中(查库+回写)
5.返回数据库中的合同数据
8.返回无数据
6.将数据写入Redis缓存(设置30分钟过期)
6.写入空值标记(5分钟过期)
结束
部门经理是否批准?
法务审核是否通过?
是
提交法务审核
7.缓存写入成功确认
MySQL数据库
7.空值缓存写入成功
合同金额是否超过阈值?
2.查询Redis缓存(Hash/ZSet)
1.请求查询合同(详情/列表),参数:contractId/筛选条件
前端/业务服务
退回修改或终止
发起合同审批
提交部门经理审批
合同业务逻辑层
5.返回无数据(合同ID不存在)
合同快速查询流程(Redis缓存优先)
Redis缓存层
场景1 - 缓存命中(快速返回)
补充 - 缓存穿透处理
4.返回合同数据(毫秒级)
开始