$locks_key = 'locks_' . $userid;
$is_lock = $redis->setnx($locks_key , 1); // 加锁
if($is_lock == true){ // 获取锁权限
// 程序逻辑处理:
if ......
// 释放锁
$redis->del($lock_key);
}else{
// 防止死锁
if($redis->ttl($lock_key) == -1){
$redis->expire($lock_key, 5);
}
return true; // 获取不到锁权限,直接返回
}
PHP使用redis中setnx防止高并发下操作写入
于 2023-11-20 16:20:49 首次发布