Exemple #1
0
 /**
  * 以延迟过期的方式设置过期时间
  * @param string $key    键名
  * @param int $time      过期时间(单位:秒)。不大于0,则设为永不过期
  * @param int $delayTime 延迟过期时间,如果未设置,则使用配置中的设置
  * @return boolean       是否成功
  */
 public function expireDE($key, $time, $delayTime = null)
 {
     try {
         //$time不大于0,则永不过期
         if ($time <= 0) {
             $this->handler->del(self::timeKey($key));
             return $this->handler->persist($key);
         }
         if ($this->hasDE($key)) {
             $delayTime = $this->getDelayTime($delayTime);
             $ret = $this->handler->multi()->expire($key, $time + $delayTime)->setex(self::timeKey($key), $time + $delayTime, self::setValue(['expire_time' => time() + $time + $delayTime, 'delay_time' => $delayTime]))->exec();
             return $ret !== false ? true : false;
         }
         return false;
     } catch (RedisException $ex) {
         self::exception($ex);
         //连接状态置为false
         $this->isConnected = false;
     }
     return false;
 }