查看接口可以了解一些想要的数据内容,在Laravel框架中接口的调用时比较频繁的,但这也导致了同一个接口被多次使用的情况出现,这就不利于我们对数据进行分析了。为了避免这种现象的产生,本篇对其中的key值进行了设置,关于具体的一些适用情况和原理,我们在下文中寻找答案。
1、接口说明
调用接口来展示数据,先要看着对应的接口文档,跟着接口文档来写,找到对应的域名以及接口名称。
该方法仅适用于简单的接口频率限制。并不适用于商品秒杀,但原理类似。
2、原理
这只是一个简单的实现过程,主要用了 redis 原生的 set 方法类给 key 设置值的时候设置过期时间,如果改 key 存在 ,则返回 false。如果不存在则设置值同时设置过期时间,返回 true。避免了死锁的出现。
3、实例
/** * 简单处理并发 * @User yaokai * @param $key 要设置的key * @param int $ttl 限制过期时间 * @param int $value 要设置的值 * @return bool true成功 false失败 */ function redisConcurren($key, $ttl = 240, $value = 1) { // 实例化原生 redis $redis = new \Redis(); // 指定需要使用的 redis 服务器 $redis->connect(config('database.redis.default.host')); // 设置密码 $redis->auth(config('database.redis.default.password')); // 设置默认的 redis 库 $redis->select(config('database.redis.default.database')); // 利用原生的set方法设置一个key的过期时间 $status = $redis->set($key, $value, array( 'nx', 'ex' => $ttl )); return $status; }
拓展:
接口路由
Route::get('v1/place/list', 'Api\ApiController@placeList'); //活动地点信息查询接口 Route::post('v1/place/add', 'Api\ApiController@placeAdd'); // 新增活动地点接口 Route::post('v1/place/update/{id}', 'Api\ApiController@placeUpdate'); // 修改活动地点接口 Route::post('v1/place/del/{id}', 'Api\ApiController@placeDel'); // 删除活动地点接口
以上就是php中Laravel接口的使用,可以看出此种方法既能避免死锁的出现,也可以防止一个接口被多次调用。大家学会后,也快来进行有关接口的一些设置吧。更多php学习指路:php框架