DatabaseLock
数据库方式的共享锁FileLock
文件加锁的方式实现SemaphoreLock
基于信号量(是系统提供的一种原子操作)的方式实现。需php编译时--enable-sysvsem
MemcacheLock
基于memcache实现
- composer
{
"require": {
"php-comp/lock": "dev-master"
}
}
- 直接拉取
git clone https://git.oschina.net/inhere/php-lock.git // git@osc
git clone https://github.com/inhere/php-lock.git // github
use PhpComp\Lock\Lock;
$locker = new Lock([
'driver' => '', // allow: File Database Memcache Semaphore
'tmpDir' => '/tmp', // tmp path, if use FileLock
]);
$key = 'op1';
if ($locker->lock($key)) {
// do something ...
$locker->unlock($key);
}
MIT