这个小伙伴们是不是发现有问题了,这么大量的请求过来,走数据库肯定是不行的,想到的肯定是把库存放到缓存中,因为是分布式,所以放到Redis中。
那就有个问题了,什么时候把商品库存放到缓存中?
最好的方式就是通过后台管理系统,因为我们新建一个秒杀商品,肯定是通过后台管理系统操作的,添加秒杀商品后,应该会有一个类似按钮【上线发布】,可以在这个按钮事件进行缓存,当然小伙伴们可根据自己的业务。
扣库存
一、秒杀扣库存,经常会出现【超卖】,这个是什么原因呢?我们看一下扣库存的代码:
直接执行sql语句,把库存减一。我们再看一下整体代码,先检查库存,有库存再扣库存。
//验证是否有库存
if(checkGoodStock(goodId) <= 0){
return 0; //表示无库存了
}
//扣库存
deductGoodStock(goodId);
二、举个例子:
如:我们现在的剩余