在接口幂等性设计中,利用 Redis 防止前端网络卡顿导致的重复提交订单,业界最常用且最可靠的方案主要有两种:Token 机制(防重令牌) 和 分布式锁机制(Idempotency-Key)。 下面为你详细拆解这两种方案的设计流程、核心代码逻辑以及避坑指南。 --- 方案一:Token 机制(防重令牌)—— 推荐方案 这是目前主流的防重提交方案。核心思想是:“先申请令牌,再携带令牌提交,令牌一次性有效”。 1. 业务流程 1. 进入订单确认页:前端在进入“提交订单”页面时,向后端发起请求获取 Token。 2. 生成并缓存 Token:后端生成一个全局唯一的 Token(如 UUID),将其存入 Redis,并设置一个过期时间(如 15 分钟),然后将 Token 返回给前端。 Redis Key 格式示例: 3. 提交订单:用户点击“提交订单”,前端将该 Token 放在请求头(Header)或请求体中传给后端。 4. 校验 Token(核心原子操作):后端接收到请求后,去 Redis 中删除该 Token。 如果删除成功(返回 1):说明是第一次提交,继续执行创建订单的业务逻...