laravel中使用redis分布式锁

发布时间:2022-10-25 17:23:51 阅读:1408次

laravel中使用分布式锁来进行并发控制

set($key, $value, $expireResolution = null, $expireTTL = null, $flag = null)

参数一: $key                           缓存键
参数二: $value                         缓存值
参数三: $expireResolution              EX/PX
EX        设置键key的过期时间,单位时秒(seconds)
PX        设置键key的过期时间,单位时毫秒(milliseconds)              
参数四: $expireTTL                     缓存键过期时间,单位由参数三决定
参数五: $flag                          NX/XX                               
NX  只有键key不存在的时候才会设置key的值
XX  只有键key存在的时候才会设置key的值 
$processid = rand(1,10000).rand(1,10000);
$key = 'process_lock';
$value = 'process_'.$param['action_id'].'_'.$processid;
$lock = Redis::set($key, $value, 'ex', 3,'nx');
if($lock){    
        if(xxx){
                self::delKey($key,$value);
                throw new \Exception('exception');
        }        
        xxx
        self::delKey($key,$value);
}else{
        throw new \Exception('exception');
}

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel中使用redis分布式锁 出自老鄢博客 | 欢迎分享