redis09_秒杀案例eclipse中使用redis【有问题,待重新整】

秒杀案例(上)系列文章目录

分析

在这里插入图片描述

先分析一下,商品应该用什么数据类型来存储,redis五种数据类型使用哪种?
String类型可以满足吗
一个key 一个值 是String类型的
答案是,可以满足
在这里插入图片描述
在这里插入图片描述

redis有5种数据类型,怎么选择用哪种数据类型?

hash是用来存对象的,我们这里不需要
zset是有序的,我们这里不一定要有序
那么就是List和Set里面选择了
我们选择Set,为什么不选择List是因为我们的成功者成功抢到之后,就应该这个商品不能再抢了,因为已经秒杀到了
List不会帮我们去重,而Set可以帮助我们去除重复
所以最终选择了Set

代码

同样的,这块我们也提供了基础代码
在这里插入图片描述

分析代码

在这里插入图片描述
界面非常简单,就是一个按钮
在这里插入图片描述
为什么一定要获取到用户的Id,因为我们必须要知道具体是哪个用户来进行的秒杀
用户Id和商品Id我们都要知道
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
0或者是null都说明qtValue没有初始化过

在这里插入图片描述

在这里插入图片描述
这个时候大家想一想还有没有其它情况
比如用户,他秒杀成功之后会不会又重新进来秒杀一次
所以我们要做判断,每个用户只能秒杀一次
怎么判断用户是否秒杀成功过
在这里插入图片描述
redis里面的Set数据类型有这个方法,根据key判断某个成员是否存在
在这里插入图片描述
现在还有其它的情况吗
商品我们判断了
用户我们判断了
按道理是不会有什么情况了

启动项目,有问题再微调

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就完成了
但是我们想一个问题,就是如果我们并发访问的时候会不会有什么问题呢?

猜你喜欢

转载自blog.csdn.net/qq_41753340/article/details/120910755