1.开启php的redis扩展并安装redis
2.在框架的thinkphp/library/think/cache/driver/redis.php设置redis的密码
3.添加秒杀商品到redis中(我以商品编号为1的进行秒杀)并进行秒杀
//添加秒杀商品到redis中
public function seckill_add(){
$redis = new Redis();
$obj = $redis->handler();
for ($i=1;$i<=10;$i++){
$obj->lpush("seckill_product_1",$i);
}
}
//开始秒杀(用户随机)
public function seckill_start(){
$user = mt_rand(50,10000);
// 创建一个订单
$redis = new Redis();
$obj = $redis->handler();
$restful = $obj->lpop('seckill_product_1');
if (!$restful){
return json(["status" => false,"message" => "失败"]);
}
$order = Db::table("order")->insert([
'address'=>'成都市 武侯区',
'total_amount' =>'188',
'is_pay' => 1,
'user_id'=>$user
]);
if ($order){
return json(["status" => true,"message" => "下单成功,请到订单页面支付"]);
}else{
return json(["status" => false,"message" => "秒杀异常"]);
}
}
order表:
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`address` varchar(255) DEFAULT NULL,
`total_amount` decimal(50,0) DEFAULT NULL,
`is_pay` varchar(255) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.在安装jmeter之前需要先安装jdk,因为jmeter是通过jdk运行的,然后设置好环境变量
5.下载jmeter,运行bin/jmeter.bat文件,进入jmeter之后
1)点击文件新建计划
2)在编辑里面添加一个线程组
3)然后在线程组里添加HTTP请求设置好之后点击上方运行按钮,如图
4)在http请求里的监听器里,添加察看结果树,目前测试一秒跑20000个线程数据是没有问题的