Exemple #1
0
 /**
  * 当键名不存在时设置键值
  * @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;
 }