怎么防止超卖

  1. mysql的排它锁(配合失误)
 UPDATE seller_product_goods SET product_stock = product_stock - #{number} WHERE id = #{id} AND product_stock > (#{number} - 1)
  1. 版本号
  select version from goods WHERE id= 1001
  update goods set num = num - 1, version = version + 1 WHERE id= 1001 AND num > 0 AND version = @version(上面查到的version);
  1. redis的预减库存
  每一个用户线程进来,key值就减1,等减到0的时候,全部拒绝剩下的请求

posted on   何苦->  阅读(59)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示