简析Laravel中处理接口并发

2022-05-15 0 1,025

下面由Laravel教程栏目给大家介绍Laravel 中简单处理接口并发,希望对需要的朋友有所帮助!

Laravel 中简单处理接口并发

简介

日常业务逻辑中经常会出现接口并发处理,最常见的是同一个接口被瞬间调了好几次,导致产生的数据错乱
为了避免这种问题发生,一般前端、移动端会限制按钮触发接口限制,后端接口调用限制。

说在前面

该方法仅适用于简单的接口频率限制。并不适用于商品秒杀,但原理类似。

原 理

这只是一个简单的实现过程,主要用了 redis 原生的 set 方法类给 key 设置值的时候设置过期时间,如果改 key 存在 ,则返回 false。如果不存在则设置值同时设置过期时间,返回 true。 避免了死锁的出现。

代码部分:

/** * 简单处理并发 * @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;}

写在后面

我只是一个慢慢学习的小菜鸟。如果有不对的地方,或者有更好的方法希望各位不吝指教,相互讨论,感激不尽!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

【声明:根据2013年1月30日《计算机软件保护条例》2次修订第17条规定: 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存 储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!】
本站所有源码尽量保证原汁原味,如有特殊情况会作出声明及标注,网站资源不做任何二次加密(原版加密除外,不影响程序使用的不会做解密处理),方便您更好的学习参考。 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

即刻码站__国内靠谱的站长资源下载平台 php教程 简析Laravel中处理接口并发 https://www.jike1995.com/36415.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务