//采用缓存方式的 秒杀小测试
public function addGoodsStock1(){
Cache::set('goods_num',50);
}
public function buy1(){
$user_id=md5(uniqid('user').time());
if(Cache::get('goods_num')>0){
$num=Cache::get('goods_num');
$num=$num-1;
Cache::set('goods_num',$num);
$goods_name='苹果手机';
Db::name('demo')->insert([
'user_id'=>$user_id,
'goods_name'=>$goods_name,
'goods_id'=>1,
'create_time'=>date('Y-m-d H:i:s')
]);
//秒杀成功
return Json([
'code'=>0,
'data'=>[],
'msg'=>'秒杀成功'
]);
}else{
//秒杀失败
return Json([
'code'=>1,
'data'=>[],
'msg'=>'暂无库存'
]);
}
}
//采用redis 秒杀小测试
public function addGoodsStock2(){
//设定商品数量
$count=20;
$listKey="goods_list";
//创建连接redis对象
$redis=Cache::store('redis')->handler();
for ($i=1;$i<=$count;$i++){
//将商品id push到列表中
$redis->rPush($listKey,$i);
}
}
public function buy2(){
//假装是用户的唯一标识
$user_id=md5(uniqid('user').time());
$redis=Cache::store('redis')->handler();
$listKey="goods_list";
if ($goodsId=$redis->lPop($listKey)) {
$goods_name='苹果手机';
Db::name('demo')->insert([
'user_id'=>$user_id,
'goods_name'=>$goods_name,
'goods_id'=>1,
'create_time'=>date('Y-m-d H:i:s')
]);
//秒杀成功
return Json([
'code'=>0,
'data'=>[],
'msg'=>'秒杀成功'
]);
}else{
//秒杀失败
return Json([
'code'=>1,
'data'=>[],
'msg'=>'暂无库存'
]);
}
}
采用ab测试
ab -n 10000 -c 1000 http://192.168.1.16/***/buy2
10000是总访问次数,1000并发次数
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848