Redis是单线程模型,为什么还需要Redis分布式锁呢?

来源:9-5 队列泄洪原理

去则不闲

2020-11-13

老师,如果Redis的所有get set操作都是单线程的,并发安全的,那直接在Redis中减库存,再异步更新到MySQL中不就可以了吗?为什么还有Redis分布式锁的概念呢?

写回答

1回答

龙虾三少

2020-11-15

get的时候拿到了数据 减1后set回去前其他线程也这么做了 导致只被剪了一次

0
1
去则不闲
所以老师,我看您的做法是先减,然后判断是否>=0,这样的做法确实可以防止超卖。但是如果我没理解错的话,是不是会造成少卖?因为您的做法相当于减完之后再get,那么如果减完之后,get之前这段时间里该商品数量又被其他线程减了导致<0了,那本来应该正常的本次操作因为get时候商品数量<0而无法生成订单,导致应该被卖的商品没有卖出去,所以会造成少卖。请问老师我这个理解是否在正确?
2020-11-15
共1条回复

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

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

2174 学习 · 1009 问题

查看课程