# 《拼团交易平台系统》第2-29节:退单锁单量恢复
作者:小傅哥
博客:https://bugstack.cn (opens new window)
视频:https://t.zsxq.com/o8Sz5 (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、本章诉求
接收拼团组队退单消息,驱动锁单量redis库存恢复操作。这是一个数据库和缓存数据一致性的设计,在很多场景都非常实用。
# 二、功能流程
如图,退单恢复库存核心流程;

- 首先,退单恢复库存最重要的就是数据一致性。数据库中已经变更完 lock 锁单记录了,之后就是更新 redis 缓存的量。
- 那么,这里为了保证更新 redis 是一致性库存的,且成功的。所以需要添加一个分布式锁,来维护,确保不会被重复更新。
- 所以,当加锁失败则表示重复恢复库存,如果incr 失败,则删掉分布式锁,抛异常,让 MQ 重试。这个概率很低,但也需要添加,以保证整体的可靠性。