php中redis锁怎么应用
作者:ClearCorner
时间:2023-04-27
来源:正软商城
浏览:1
Redis Assistant
Redis Assistant 是一款为Redis设计的高效可视化管理与监控工具,提供多种操作模式,高效处理服务器数据。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。
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();
}
}
作者最新文章
樱花动漫官网百度入口 樱花动漫专注门户网站入口
2026-11-05 10:59
office打开后显示空白 恢复文档内容
2026-11-04 23:12
OmoFun动漫最新官方版下载与使用指南(附图文步骤)
2026-11-04 09:48
office打开多个表格并排显示
2026-11-02 13:52
office文件打不开 修复文档故障
2026-11-02 09:42
热门文章
更多
精品专题
更多
Mac软件
更多
火山引擎 网页版
Windows/ macOS/ Linux
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















