这是个面试中非常常见的问题,也是并发请求中常见的情况,对于数据的一致性有很高要求系统都是要做的
主要有以下四个解决思路:
1、提交订单按钮置灰,短时间内不可重复提交;
2、后端预生成全局唯一订单号。前端进入下单页面去请求获取该订单号,然后下单,后端通过此唯一订单号进行处理,已处理过的就不用重复处理了。
3、前端生成全局唯一订单号。这个就和第2中差不多,只是前端不需要去请求后端接口,自行生成唯一订单号。
4、使用redis处理。简单理解就是,利用redis的过期时间这个功能。key可以设置为用户ID + 分隔符 + 商品ID,再设置过期时间,到期自动删除。
后续处理订单之前先去redis查询下,如果key存在就直接返回不给处理,不存在就处理订单。
具体看选择哪种,看自行需要
原文链接:https://juejin.cn/post/7273024681631776829
注:不是抄袭,只是自己做个笔记,觉得作者写的很好,如有侵权,联系我删除
标签:处理,重复,redis,订单号,订单,提交 From: https://www.cnblogs.com/qwg-/p/17981642