redis 线程安全
来源:7-5 redis预减库存,rabbitmq异步下单

luotuo1089
2018-03-18
多线程处理redis库存,会存在超卖的问题吗?
写回答
2回答
-
若鱼1919
2018-03-19
int stock = redis.decr();
if(stock <= 0){
return 库存不足;
}
假如现在的库存数是1,两个线程同时做decr,库存数就变成-1了。同理,如果有100个并发,那库存数就是-99.
112018-03-26 -
慕无忌9148628
2018-07-17
但是这种情况会有可能出现少卖的情况 压测的时候发现的
我认为MiaoshaController中应该把redis的decr方法和if放到一起才是线程安全的
if(redisService.decr(GoodsKey.getMiaoshaGoodsStock, ""+goodsId) < 0) {
return Result.error(CodeMsg.MIAO_SHA_OVER);
}
还要麻烦老师来评价一下我认为的是否正确,谢谢
052020-05-05
相似问题