首页 / REDIS / tp5基于redis实现商品秒杀
tp5基于redis实现商品秒杀
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了tp5基于redis实现商品秒杀,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1282字,纯文字阅读大概需要2分钟。
内容图文
![tp5基于redis实现商品秒杀](/upload/InfoBanner/zyjiaocheng/893/c852c93040c94e469905d6e975ea12ab.jpg)
tp5通过redis实现秒杀
直接放代码
class Sellkill extends Controller
{
private $goods_id = [68,69,70]; //这是要秒杀的商品
public function __construct(Request $request = null)
{
parent::__construct($request);
}
//将商品id对应的数量存入队列中
public function add(){
$redis = new \Redis();
$redis->connect('127.0.0.1',6379);
$goods_info = (new Goods())->where('id','in',$this->goods_id)->select()->toArray();
foreach ($goods_info as $key=>$value){
$store = $value['store_nums']; //商品库存
for ($i=1;$i<=$store;$i++){
$redis->lPush('sellkillGoodId:'.$value['id'],$i);
}
echo '商品'.$value['title'].'添加成功';
}
return '添加成功';
}
//抢购
public function buy(Request $request){
$goods_id = $request->param('goods_id');
$user_id = $request->param('user_id');
$redis = new \Redis();
$redis->connect('127.0.0.1',6379);
if(!in_array($goods_id,$this->goods_id)){
return json(['msg'=>'商品id错误','data'=>[]]);
}
$user_ids = $redis->sMembers('buyGoodsUserId'.$goods_id);
if(in_array($user_id,$user_ids)){
return json(['msg'=>'已拥有该商品','data'=>[]]);
}
if($redis->rPop('sellkillGoodId:'.$goods_id)){
//将抢购到商品的用户添加到该商品对应的集合中
$redis->sadd('buyGoodsUserId'.$goods_id,$user_id);
//生成订单 减少商品数量等业务
......
return json(['msg'=>'','data'=>'成功']);
}else{
return json(['msg'=>'抢购失败','data'=>[]]);
}
}
}
内容总结
以上是互联网集市为您收集整理的tp5基于redis实现商品秒杀全部内容,希望文章能够帮你解决tp5基于redis实现商品秒杀所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。