在超卖问题上,理解是网络并发引起的超卖问题,没太理解redis超卖问题
来源:4-5 Redis原生实现分布式锁
慕用6575991
2021-02-07
老师,有个地方没太理解,在秒杀抢券活动中,在超卖问题上,理解是网络并发引起的超卖问题,老师您说是redis多线程问题导致的,老师,有个地方我没太理解,为什么通过lua脚本放到一个线程里执行就好了,实际上同一时间可能会有并发很多个单线程在执行查库存并扣库存操作,能否给详细回复下
写回答
2回答
-
北极玉米
2022-07-15
个人理解,超卖问题出现的原因是因为查询count和自减不是原子操作,lua脚本就是让这两个指令在变成redis执行时的原子操作。Redis在执行的时候其实还是单线程的,这样子执行起来,一个操作要么执行,要么没有执行,于是乎就不会有超卖现象了。
112022-07-25 -
InCowboy
2021-02-23
你理解的产生超卖的原因是正确的,这里所讲的Redis多线程其实就是请求上的高并发,开启了多个Redis客户端实例去对Redis进行操作,通过Lua脚本就是解决这个问题
00
相似问题