在 Laravel 中处理接口并发
处理接口并发经常出现在日常业务逻辑中。最常见的就是同一个界面被一次性修改多次,导致数据混乱
为了避免这种问题,前端一般会限制触发按钮界面限制,后端会限制调用接口。
前面解释过
此方法仅适用于简单的接口限频。它不适用于产品的闪购,但原理类似。
原理
这只是一个简单的实现过程。主要是利用redis原生的set方法类在设置键值时设置过期时间。如果键存在则返回 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('')); // 设置密码 $redis->auth(config('')); // 设置默认的 redis 库 $redis->select(config('')); // 利用原生的set方法设置一个key的过期时间 $status = $redis->set($key, $value, array( 'nx', 'ex' => $ttl )); return $status; }
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。