neovg/phpredis-lock

使用 PHPRedis 作为后端支持的简单互斥锁锁定类,支持 TTL。

1.0.4 2021-12-03 17:18 UTC

This package is auto-updated.

Last update: 2024-09-29 05:29:45 UTC


README

使用 PHPRedis 作为后端支持的简单互斥锁锁定类,支持 TTL。

安装

composer require neovg/phpredis-lock

设置

\NeoVg\PhpRedisLock\Lock::getInstance()->setConfig(
    (new \NeoVg\PhpRedisLock\ConfigStruct())
        ->withHost('127.0.0.1')
        ->withPort(6379)
        ->withDatabase(11)
);

使用

获取和释放

if (!\NeoVg\PhpRedisLock\Lock::getInstance()->acquire('name')) {
    echo 'could not acquire lock';
}

if (!\NeoVg\PhpRedisLock\Lock::getInstance()->release('name')) {
    echo 'could not release lock';
}

非阻塞获取

\NeoVg\PhpRedisLock\Lock::getInstance()->acquire('name', 0);

自定义等待时间(120秒)

\NeoVg\PhpRedisLock\Lock::getInstance()->acquire('name', 120);

TTL(60秒)

\NeoVg\PhpRedisLock\Lock::getInstance()->acquire('name', null, 60);

检查是否已被(此进程)获取

\NeoVg\PhpRedisLock\Lock::getInstance()->isAcquired('name');

检查是否已被(其他进程)锁定

\NeoVg\PhpRedisLock\Lock::getInstance()->isLocked('name');

获取现有锁的信息

$lockInfo = \NeoVg\PhpRedisLock\Lock::getInstance()->get('name;);