怎么防止超卖

  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 2022-12-04 00:34  何苦->  阅读(74)  评论(0)    收藏  举报

导航