为什么扣除redis失败要加回来?

来源:7-8 缓存库存接入异步化(上)

qq_慕尼黑3458450

2021-07-11

先不管消息发没发成功,我们是stock >= #{amount}才去扣,扣除失败那就是没有扣吧?为什么要加回来呢?不会加多了吗?

写回答

1回答

龙虾三少

2021-07-17

扣除成功下单或发消息失败才会去加redis

0
1
smallbigfans
老师,最后else加的操作是对的吗? //这里是redis先减库存,如果redis减成功就做if,如果没有减成功就走else //如果redis发生错误没有减成功,那为什么还要再给它加库存 Long result = redisTemplate.opsForValue().increment("promo_item_stock_" + itemId, amount.intValue() * -1); if (result>=0) { //缓存更新库存成功 //省略代码 }else { //缓存更新库存失败 redisTemplate.opsForValue().increment("promo_item_stock_" + itemId, amount.intValue()); return false; }
2021-08-19
共1条回复

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2174 学习 · 1009 问题

查看课程