php中redis锁怎么应用
作者:ClearCorner
时间:2023-04-25
浏览:0
PhpStorm macOS版
PhpStorm 是 JetBrains 推出的专业 PHP 集成开发环境,可在 Mac 上完成代码编写、智能检查、重构、调试、测试和数据库管理。它支持主流 PHP 框架、Composer、Git、Docker 与远程解释器。
¥890
Mac
2026-10-09
classLockUtil{privatestatic$lock_prefix='hi_box_lock_';/***@param$key*@paramstring$func操作方法*@paramint$timeout*@returnbooltrue未锁false已锁*/publicstaticfunctiononLock($key,$func='default',$timeout=5):bool{if(empty($key)||$timeouthandler();$key
class LockUtil
{
private static $lock_prefix = 'hi_box_lock_';
/**
* @param $key
* @param string $func 操作方法
* @param int $timeout
* @return bool true 未锁 false 已锁
*/
public static function onLock($key, $func='default', $timeout = 5): bool
{
if (empty($key) || $timeout <= 0) {
return true;
}
/**
* @var $redis Redis
*/
$redis = Cache::store('redis')->handler();
$key = self::$lock_prefix.md5($func) . $key;
// $key 如果存在 设置nx后 是不会重新覆盖set
return $redis->set($key, 1, ['nx', 'ex' => $timeout]);
}
public static function unLock($key,$func='default')
{
/**
* @var $redis Redis
*/
$redis = Cache::store('redis')->handler();
$key = self::$lock_prefix .md5($func). $key;
//监听Redis key防止【解锁事务执行过程中】被修改或删除,提交事务后会自动取消监控
$redis->watch($key);
if ($redis->get($key)) {
$redis->multi()->del($key)->exec();
}
$redis->unwatch();
}
}
作者最新文章
多张图片转PDF教程:在线批量合成与顺序调整技巧
2026-09-03 10:03
AutoCAD 2014安装指南:环境检查、授权配置与首次启动设置
2026-09-02 13:34
watchstore下载软件教程:设备兼容、安装流程与常见故障
2026-09-02 13:24
PDF转Word免费方法及编辑可行性判断指南
2026-09-01 18:14
魅族20pro怎么样 魅族20pro参数配置
2026-08-25 15:42
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多






































