商品减库存问题

1、减库存不能加悲观锁,

2、在sql里判断类似乐观锁但是会使数据库压力变大,

3、先从redis获取商品库存并判断是否减库存,减完库存刷新redis,但是线程上的安全问题,当线程很多、高并发时,有可能引发超卖问题

4、 分布式锁也可以锁在商品上,单个商品串行,多个商品并行。

5、更好的办法是,redis本来就是单线程的,所以可以考虑把“检查库存-扣减库存-返回结果”的动作写成lua脚本去调用,一个调用就能原子化地操作库存了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容