<?php
namespace App\Service;
use Illuminate\Support\Facades\Redis;
class RedisLockService
{
public static function lock($key, $expire = 10)
{
if(!$key) {
return false;
}
do {
if($acquired = (Redis::setnx("Lock:{$key}", time()))) { // 如果redis不存在,则成功
Redis::expireat("Lock:{$key}", time() + $expire);
break;
}
usleep($expire);
} while (true);
return true;
}
//释放锁
public static function release($key)
{
if(!$key) {
return false;
}
Redis::del("Lock:{$key}");
Redis::close();
}
}
laravel Redis 锁机制代码
最新推荐文章于 2024-08-28 09:02:44 发布