Exemple #1
0
 /**
  * 对指定键名加锁(此锁并不对键值做修改限制,仅为键名的锁标记)
  * 此方法可用于防止惊群现象发生,在get方法获取键值无效时,先判断键名是否加锁,
  * 如果已加锁,则不获取新值;如果未加锁,则获取新值,设置新的缓存
  * @param string $key   键名
  * @param int $time     加锁时间
  * @return boolean      是否成功
  */
 public function lock($key, $time = 60)
 {
     try {
         return $this->handler->setex(self::lockKey($key), $time, 1);
     } catch (RedisException $ex) {
         self::exception($ex);
         //连接状态置为false
         $this->isConnected = false;
     }
     return false;
 }
Exemple #2
0
 /**
  * 设置键值
  * @param string $key   键名
  * @param mixed $value  键值
  * @param int $time     过期时间,默认为-1,<=0则设置为永不过期
  * @return boolean      是否成功
  */
 public function set($key, $value, $time = -1)
 {
     try {
         if ($time > 0) {
             return $this->handler->setex($key, $time, self::setValue($value));
         }
         return $this->handler->set($key, self::setValue($value));
     } catch (RedisException $ex) {
         self::exception($ex);
         //连接状态置为false
         $this->isConnected = false;
     }
     return false;
 }