关于如何防止重复订单提交
这是个面试中非常常见的问题,也是并发请求中常见的情况,对于数据的一致性有很高要求系统都是要做的
主要有以下四个解决思路:
1、提交订单按钮置灰,短时间内不可重复提交;
2、后端预生成全局唯一订单号。前端进入下单页面去请求获取该订单号,然后下单,后端通过此唯一订单号进行处理,已处理过的就不用重复处理了。
3、前端生成全局唯一订单号。这个就和第2中差不多,只是前端不需要去请求后端接口,自行生成唯一订单号。
4、使用redis处理。简单理解就是,利用redis的过期时间这个功能。key可以设置为用户ID + 分隔符 + 商品ID,再设置过期时间,到期自动删除。
后续处理订单之前先去redis查询下,如果key存在就直接返回不给处理,不存在就处理订单。
具体看选择哪种,看自行需要
原文链接:https://juejin.cn/post/7273024681631776829
注:不是抄袭,只是自己做个笔记,觉得作者写的很好,如有侵权,联系我删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)