?php/** * 使用Memcache实现给进程加锁的类 * * Copyright (C) 2013 JeffJing * * 一些时候需要让系统的某些操作串行化,这个时候就要对这些操作来加上一把锁。 好比你去上厕所, 你要先推厕所门看能否进去,进去的话上锁,其他人就进不来了, 等你拉完粑粑之
connect ( '127.0.0.1', 11211 );
}
return self::$memcache;
}
/**
* 加锁
*
* @param $key 锁关键字
* @param $expireTime 超时时间, 当进程在锁定后出错,这样永远不会释放锁了,只能等到缓存失效
*
* @return boolean true 成功获取到锁 false 获取锁失败
*/
public static function addLock($key, $expireTime = 120) {
$memcache = self::getConnection ();
if($memcache->add($key, 1, false, $expireTime)) {
return true;
}
return false;
}
/**
* 释放锁
*
* @param $key 锁关键字
*
* @return boolean true 释放成功 false 释放失败
*/
public static function releaseLock($key) {
$memcache = self::getConnection ();
return $memcache->delete ( $key );
}
声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权
转载请注明来源:小景的博客
本文链接地址:http://www.phpv5.com/blog/mem-lock
本文原创发布php中文网,转载请注明出处,感谢您的尊重!