bdhert / php-lock
简易的分布式锁
v0.1.2
2023-03-27 06:47 UTC
Requires
- php: ^7.4
- predis/predis: ^2.0
This package is auto-updated.
Last update: 2025-02-27 11:06:16 UTC
README
说明
介绍
使用多种方式实现的简易、可靠的分布式锁。
架构
redis引擎基于predis/predis:"^2.0"包
思想
- 使用场景:防重复提交、唯一任务按序执行、悲观锁业务。
使用
安装
- composer require bdhert/php-lock
- 开发版:composer require bdhert/php-lock:"dev-master"
- 基础版:composer require bdhert/php-lock:"^0.1"
使用
<?php
use bdhert\PhpLock\Lock;
use bdhert\PhpLock\exception\LockException;
use Predis\Client;
try {
$key = 'my:unique';
$redis = new Client([
'scheme' => 'tcp',
'select' => 0,
'port' => 6379,
'host' => '127.0.0.1',
'password' => NULL,
]);
$lock = new Lock(Lock::LOCK_TYPE_REDIS, $redis);
if ($lock->get($key)) {
echo 'OK';
}
$lock->release($key);
} catch (LockException $e) {
throw new LockException($e->getMessage(), 400);
}