并发修改同一条记录

场景假设

  • 用户通过小程序和App 同时下单,都用了同一个红包,写到订单表
  • 在订单表的两条记录中都会存 该红包id,用户支付成功之后更改 该红包使用状态。意味着 同一个红包成功使用了两次。

如何确保 订单和红包一一对应,A订单使用之后,B订单就无法使用了?

最佳答案

1,借用唯一索引,红包序列号在订单表唯一

2,使用mysql锁机制

3,其他锁机制或者队列比如redis

1个月前 评论
Darwin (楼主) 1个月前
讨论数量: 3

1,借用唯一索引,红包序列号在订单表唯一

2,使用mysql锁机制

3,其他锁机制或者队列比如redis

1个月前 评论
Darwin (楼主) 1个月前

正常业务不允许两端同时在线的 不然很多地方都需要做处理

1个月前 评论
Darwin (楼主) 1个月前

这个和后端做防重复提交类似, 可采用redis 分布式锁在用户提交数据做处理

1个月前 评论
Darwin (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!