/** * 当键名不存在时设置键值 * @param string $key 键名 * @param mixed $value 键值 * @param int $time 过期时间,默认为-1,<=0则设置为永不过期 * @return boolean 是否成功 */ public function setnx($key, $value, $time = -1) { try { if ($time > 0) { if ($this->handler->setnx($key, self::setValue($value))) { $ret = $this->handler->expire($key, $time); //如果执行失败,则尝试删除key if ($ret === false) { $this->handler->del($key); } return $ret !== false ? true : false; } return false; } return $this->handler->setnx($key, self::setValue($value)); } catch (RedisException $ex) { self::exception($ex); //连接状态置为false $this->isConnected = false; } return false; }