Skip to content

phppkg/lock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

php 共享锁的实现

License Php Version Latest Stable Version

  • DatabaseLock 数据库方式的共享锁
  • FileLock 文件加锁的方式实现
  • SemaphoreLock 基于信号量(是系统提供的一种原子操作)的方式实现。需php编译时 --enable-sysvsem
  • MemcacheLock 基于memcache实现

参考: http://www.jb51.net/article/94878.htm

安装

  • 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);
}

License

MIT