码迷,mamicode.com
首页 > Web开发 > 详细

PHP 使用redis防止大并发下二次写入(redis 锁)

时间:2019-08-15 19:27:44      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:think   set   任务   turn   设置   row   class   pass   自己   

//避免频繁请求 (ThinkPHP)
        $sessID = ‘register‘ . $data[‘mobile_code_id‘] . $data[‘mobile‘] . $data[‘password‘];
        if(!(new \think\session\driver\Redis())->lock($sessID,3)){
            throw new \Exception(‘频繁请求‘);
        }
//自己定义
$lock_key = ‘LOCK_PREFIX‘ . $redis_key;
        $is_lock = $redis->setnx($lock_key, 1); // 加锁
        if($is_lock == true){ // 获取锁权限
            // 设置过期时间,防止死任务的出现
            $redis->expire($lock_key, 5);
        }else{
            return true; // 获取不到锁权限,直接返回
        }

 

PHP 使用redis防止大并发下二次写入(redis 锁)

标签:think   set   任务   turn   设置   row   class   pass   自己   

原文地址:https://www.cnblogs.com/weihua2018/p/11359677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!