laravel实现redis队列秒杀

本文介绍了如何在laravel框架下利用redis队列进行秒杀操作。通过控制器层处理商品展示及时间戳判断,当秒杀时间开始时,允许用户参与。若时间结束或库存不足,则显示秒杀失败;反之,生成订单并显示秒杀成功。视图层通过ajax请求数据,实现实时的秒杀反馈。
摘要由CSDN通过智能技术生成

控制器层

秒杀前做的准备我们需要把数据库的数据引入到你得redis里面 同步到redis里面 然后就可以进行秒杀
 public function before(){
		$arrs = DB::select("select id,stock from 数据表名称");//Db查id和库存
		$data = json_decode(json_encode($arrs),true);
		$redis=new \Redis();//初始化redis
		$redis->connect('127.0.0.1',6379);//redis端口号
		$redis->select(9);		// 不写此语句,默认是0号数据库
		// 循环(遍历)所有商品
		foreach ($data as $key => $value) {
			// 给每个商品在redis中创建一个对应的列表,这个列表的键名是 goods+id值
			for($i=1;$i<=$value['stock'];$i++){
				$redis->lpush('数据表名称'.$value['id'],$i);		// 键是 goods1 goods2 goods3等
			}	
		}		
	}

秒杀中 我们需要把数据库里面的东西拿出来 渲染到页面里面 然后进行秒杀

public function index(){
		$data = DB::select("select * from 数据表名称");//查出数据
		return view("视图名称",['data'=>$data]);//渲染页面
	}

秒杀时间 我们用时间戳来秒杀 在时间里面就可以进行秒杀 如果时间到了 就显示秒杀失败

public functio
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值