Simple mutex locking class with support for TTL using PHPRedis as backend.
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);
\NeoVg\PhpRedisLock\Lock::getInstance()->acquire('name', 120);
\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;);