这篇文章主要介绍了关于laravel+Redis简单实现队列通过压力测试的高并发处理 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
秒杀活动
在一般的网络商城中我们会经常接触到一些高并发的业务状况,例如我们常见的秒杀抢购等活动,
在这些业务中我们经常需要处理一些关于请求信息过滤以及商品库存的问题。
在请求中比较常见的状况是同一用户发出多次请求或者包含恶意的攻击,以及一些订单的复购等情况。
而在库存方面则需要考虑超卖这种状况。
下面我们来模拟一个简单可用的并发处理。
直接上代码
代码的流程
1.模拟用户请求,将用户写入redis队列中
2.从用户中取出一个请求信息进行处理(可以在这个步骤做更多的处理,请求过滤,订单复购等)
3.用户下单(支付等),减少库存。下面使用了两种方式进行了处理,一种使用了Redis中单线程原子操作的特性使程序一直线性操作从而保持了数据的一致。
另外一种是用了事务进行操作,可以根据业务进行调整,这里就不一一描述了。
实际的业务状况更为复杂,但更多的是出于对基础思路的拓展。<?php
namespace App\Http\Controllers\SecKill;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
class SecKillControllers extends Controller {
public function