问答详情
源自:3-2 Redis队列秒杀实现

redis的秒杀逻辑可能的存在问题

1.判断队列长度有可能一直小于10,因为同时在消费队列,这样可能会导致超卖问题

提问者:慕仔7564882 2019-08-06 20:07

个回答

  • 寻找09之夏
    2020-01-05 22:43:13

    视频中采用for循环测试,这个是有序的,所以不会出现超卖现象;如果并发测试的话,会出现超卖现象;这里提供一个解决思路:活动前定义一个长度为10的list;利用lpop的原子性可以保障不会超卖;就是每次请求先lpop,如果可以获取到值,表示秒杀成功;获取不到说明已抢完。