美文网首页PHPphpPHP建站
thinkphp5.0 - Redis 实现秒杀

thinkphp5.0 - Redis 实现秒杀

作者: 墨丘利lh | 来源:发表于2018-01-27 10:21 被阅读670次

    首先,因为秒杀这个环节在商城项目中比较常见,最近写商城项目,碰到这个功能模块,于是就拿出来给大家分享一波。

    难点:高并发的情况下,正常逻辑写的话数据库的库存会出现负数,对付这类问题有很多解决方案,我就不一一赘述,我这次用的是redis的队列机制。

    话不多说,进入正题

    三张表做测试,分别是:商品表,日志表,订单表,

    goods,log,order

    秒杀的入口:

    采用队列的方式加入库存

    本次采用ab压力测试:

    -r 指定接收到错误信息时不退出程序

    -t 等待响应的最大时间

    -n 指定压力测试总共的执行次数

    -c 用于指定压力测试的并发数

    进入apache的bin目录  cmd输入下列分代码

    E:\phpstudy\Apache\bin>ab -r -t 60 -n 3000 -c 600 http://127.0.0.1/api/kill/index/id/1

    结果

    数据库

    库存count并没有出现负数 订单表确实只有50个订单

    至此秒杀的功能基本实现  后续再去对其加工,欢迎大佬们提出宝贵的意见

    相关文章

      网友评论

      • b539a158d408:写的太棒了
        b4ce67bf99dc:先在redis 中库存减1 那如果数据库中的库存扣减失败了那 是不是 还要把库存加回去
        墨丘利lh:写的棒还不打赏一波:smirk:

      本文标题:thinkphp5.0 - Redis 实现秒杀

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