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加入群聊,欢迎一起研究技术
转载请注明:laravel中使用redis分布式锁 出自老鄢博客 | 欢迎分享