版权声明:本文为博主(木鱼大菽)原创文章未经博主允许不得转载。 /tdcqfyl/article/details/
准备两个队列A和B假设A队列的名称为stock,用于存放商品总库存信息B队列的名称为users,用于存放抢购荿功后的用户信息每当有用户进行抢购操作时,先从A队列弹出一个元素如果该元素有值,说明还有剩余库存此时,将用户信息存入B隊列否则,说明已无库存应该终止抢购。
// 秒杀开始前将库存放入redis队列中
// 假设秒杀总库存为500
// 待秒杀的商品编号
// 将商品库存依次放入队列中
// 此处假设有10000个用户同时来抢购商品,注意:我们的库存只有500个
// 预期情况是:500个库存都被抢光且没有出现超卖现象
// 待秒杀的商品编号
// 從队列左侧弹出一个元素,如果有值说明还有剩余库存
// 输出最终抢购成功的用户数量
// 将抢购成功的用户存入队列
此处假设有10000个用户同时來抢购商品,注意:我们的库存只有500个预期情况是:500个库存都被抢光,且没有出现超卖现象
从截图上可以看出,正好符合我们的预期秒杀基本完成,剩下的就是一些后续的业务逻辑处理如:入库操作等等。