Env::get('redis.host', $this->host), 'port' => Env::get('redis.port', $this->port), 'pwd' => Env::get('redis.pwd', ''), ]; $config = array_merge($config, PreInstall::config('redis')); $redis->connect($config['host'], $config['port']); if (!empty($config['pwd'])) { $redis->auth($config['pwd']); } $this->redis = $redis; $this->redis->select(Config::get('lc.redis.db')); } public function __call($name, $arguments) { return \call_user_func_array([$this->redis, $name], $arguments); } public static function instance() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; } /** * 同步锁 * 上锁成功返回true * 当存在锁(即上锁失败)返回false. * * @param string $key 锁定的标识 * @param string $value 锁定值 * @param int $ex 锁释放时间,超时自动释放锁 * * @return bool */ public function lock($key, $value, $ex = 3) { return $this->redis->set($key, $value, ['nx', 'ex' => $ex]); } }