laravel中使用redis分布式锁

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');
}
```

    A+
发布日期:2022年10月25日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: