请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

高并发下减库存操作如何避免超卖?

讲师,目前看完了您交易优化技术之缓存库存,事务型消息的课程,
但对该秒杀项目中,高并发下减库存操作如何避免超卖的解决方案,理解的不是很清晰,可以再帮我梳理一下吗?

将存库从MySQL前移到Redis中,由于Redis的写性能和读性能都远高于MySQL,这就解决了高并发下的性能问题。
使用事务型消息解决了redis和mysql中数据的最终一致性问题,
那么超卖问题是在哪里解决的呢?

对该秒杀项目中,高并发下减库存操作如何避免超卖的解决方案,是怎样设计的呢?

正在回答

1回答

龙虾三少 2019-07-23 23:04:49

redis对减操作是原子性的 只要保证剪完后判断剩余数量是否大于等于0可以防止不超卖

0 回复 有任何疑惑可以回复我~
  • cjt5047 #1
    老师,就是利用redis的setnx或者redlock分布式锁实现防止超卖对吗?
    回复 有任何疑惑可以回复我~ 2019-09-14 11:15:07
  • 可以的
    回复 有任何疑惑可以回复我~ 2019-09-14 11:15:34
  • 老师,既然redis对减操作是原子性的,减完判断剩余数量就可以防止超卖,那为什么会有redis分布式锁这个概念,它的应用场景在哪?这一点我不是很明白.
    回复 有任何疑惑可以回复我~ 2020-01-07 04:21:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信