handler(); while(true){ if($redis->set($name, 1, ['NX', 'EX'=>$ttl])){ break; } } return true; } /** * 得到一个redis锁,仅尝试获取一次 * * @param $name string 锁名称 * @param $ttl int 锁存在的时间,单位秒,默认60秒 * @return bool */ public static function getOnceLock($name, $ttl=60) { set_time_limit(0); $redis = Cache::store('redis')->handler(); if($redis->set($name, 1, ['NX', 'EX'=>$ttl])){ return true; } return false; } /** * 删除一个redis锁 * @param $name string 锁名称 * @return bool */ public static function delLock($name) { $redis = Cache::store('redis')->handler(); $redis->del($name); return true; } }