PHP使用redis防止大并发下二次写入,redis加锁

thinkphp版

//避免频繁请求 (ThinkPHP)
 $sessID = 'register' . $data['mobile_code_id'] . $data['mobile'] . $data['password'];
 if(!(new 	hinksessiondriverRedis())->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; // 获取不到锁权限,直接返回
}