第一种
固定名字入redis数据库,一个一个入库
商品名字IponeX
商品库存:20件
Java代码:
@Log("秒杀商品")
@AuthIgnore
@PostMapping("getGoods")
public String getGoods(String successId) {
//抢购成功用户的id
TbSchool tbSchool=new TbSchool();
tbSchool=tbSchoolService.selectById(191); //商品的id
String goodsName=tbSchool.getName(); //商品名字
Integer goodsNum=tbSchool.getType(); //商品库存
//System.out.println("商品名字:"+goodsName+" 商品库存"+goodsNum+"件");
String data="";
//System.out.println(redisTemplate.opsForValue().increment("iponeX", 1));
//increment 会首先检查是否有缓存,如果没有则置0并加1,如果有缓存则累加1
Long num=redisTemplate.opsForValue().increment(goodsName, 1);
//System.out.println(num);
if (num<=goodsNum) {
//如果抢购的次数小于等于库存,抢购成功
//抢购成功用户的id会存到Redis数据库中的list类型中
redisTemplate.opsForList().leftPush("success", successId);
data="秒杀成功!还剩"+(goodsNum-num)+"件!";
}else {
data="商品没有货了,请到下一个活动时间再来";
}
return data;
}
第二种
Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java
这种发放需要导入一个jar包
下载地址>>//static.runoob.com/download/jedis-2.9.0.jar
随机生成随机数(相当于用户的唯一信息)入redis数据库
商品名字IponeX
商品库存:40000件