在超卖问题上,理解是网络并发引起的超卖问题,没太理解redis超卖问题

来源:4-5 Redis原生实现分布式锁

慕用6575991

2021-02-07

老师,有个地方没太理解,在秒杀抢券活动中,在超卖问题上,理解是网络并发引起的超卖问题,老师您说是redis多线程问题导致的,老师,有个地方我没太理解,为什么通过lua脚本放到一个线程里执行就好了,实际上同一时间可能会有并发很多个单线程在执行查库存并扣库存操作,能否给详细回复下

写回答

2回答

北极玉米

2022-07-15

个人理解,超卖问题出现的原因是因为查询count和自减不是原子操作,lua脚本就是让这两个指令在变成redis执行时的原子操作。Redis在执行的时候其实还是单线程的,这样子执行起来,一个操作要么执行,要么没有执行,于是乎就不会有超卖现象了。

1
1
InCowboy
是这样的 理解到位
2022-07-25
共1条回复

InCowboy

2021-02-23

你理解的产生超卖的原因是正确的,这里所讲的Redis多线程其实就是请求上的高并发,开启了多个Redis客户端实例去对Redis进行操作,通过Lua脚本就是解决这个问题

0
0

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程