thinkphp5.0

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

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

话不多说,进入正题

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

goods,log,order


秒杀的入口:


采用队列的方式加入库存


本次采用ab压力测试:

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

-t 等待响应的最大时间

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

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

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

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

结果


数据库

库存count并没有出现负数

订单表确实只有50个订单

原文地址:https://www.cnblogs.com/qxandxt/p/10537774.html