美文网首页
Redis-简易秒杀

Redis-简易秒杀

作者: GIT提交不上 | 来源:发表于2020-04-06 19:02 被阅读0次

一、简易秒杀介绍

  基于Spring Boot+MyBatis+Redis+MySQL实现简易秒杀功能,完整代码见:https://github.com/just-right/seckill

  • 使用EasyCode插件快速生成通用代码
  • 使用Lua脚本解决库存遗留问题
  • 使用Set类型解决重复秒杀
  • 使用ProtostuffIOUtil序列化对象
  • 使用Jmeter工具测试秒杀

二、前期准备

2.1 MySQL数据库准备

  • 对应的SQL见 /src/main/resources/sql/CreateDataBase.sql
  • 创建数据库mybatis
  • 建表 - product(商品)/seckillactivity(秒杀活动)/seckill_success(秒杀成功记录)
  • MySQL配置信息见 /src/main/resources/application.properties

2.2 Redis数据库准备

  • Redis配置信息见 /src/main/resources/application.properties

2.3 PostMan测试工具准备

2.4 Jmeter测试工具准备

三、测试步骤

3.1 创建秒杀活动

  使用PostMan发出请求(id-商品ID & num-秒杀数量):

http://127.0.0.1:8080/seckillactivity/seckill/start/?id=1&num=10

//返回信息-返回id为秒杀活动ID,用于3.2[访问秒杀界面]
{
    "data": {
        "activityname": "薅羊毛-ea18c",
        "id": 642,
        "product": 1,
        "seckillnum": 10
    }
}

3.2 访问秒杀界面

  使用3.1返回的活动ID,使用PostMan发出请求(将活动信息存入缓存):

http://127.0.0.1:8080/seckillactivity/selectOne/642

//返回秒杀活动信息
{
    "data": {
        "activityname": "薅羊毛-ea18c",
        "id": 642,
        "product": 1,
        "seckillnum": 10
    },
    "status": "默认"
}

3.3 开始秒杀

  使用Jmeter测试工具进行测试,可以直接导入秒杀测试.jmx,将请求信息存入data.csv文件中,秒杀请求配置如下:

图3-1 秒杀请求配置.png

3.4 查看结果

  秒杀成功:

图3-2 秒杀成功.png

  秒杀失败:

图3-3 秒杀失败.png

  重复秒杀:

图3-4 重复秒杀.png

  查看秒杀成功名单:

图3-5 查看秒杀成功名单.png

  秒杀商品剩余库存:

图3-6 秒杀商品剩余库存.png

相关文章

网友评论

      本文标题:Redis-简易秒杀

      本文链接:https://www.haomeiwen.com/subject/mdtiphtx.html