Example #1
0
 public function set($key, $val, $expiresTime = 86400)
 {
     if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'spider')) {
         return false;
     }
     // 应对百度蜘蛛 并不缓存
     if (empty($key)) {
         return false;
     }
     //defensive 缓存指向 redis 备份
     if (strpos($key, "defensive0307_") !== false) {
         $cache = API_Redis_Factory::getInstance(API_Redis::PREFIX_BLOCK);
         return $cache->set($key, $val, $expiresTime);
     }
     $val = igbinary_serialize($val);
     if (strlen($val) > 1000000) {
         //这里保留原key信息,即使含有空格/控制字符等非支持字符也保留,为查询更方便
         API_Logger::Write("memcachedseterror", "msgTooLong:" . $this->getPrefix() . $key, "memcached");
         return false;
     }
     if ($expiresTime <= 0 || $expiresTime > 21600) {
         $expiresTime = 21600;
     }
     if (!$this->canUseCache()) {
         return false;
     }
     API_Benchmark::Counter('mc_set');
     $setReturn = $this->_instance->set($this->genNewKey($key), $val, $expiresTime);
     if ($setReturn == false) {
         $errMessage = $this->_instance->getResultMessage();
         $errCode = $this->_instance->getResultCode();
         //这里保留原key信息,即使含有空格/控制字符等非支持字符也保留,为查询更方便
         API_Logger::Write("memcachedseterror", "errMessage:" . $errMessage . '|errCode:' . $errCode . '|errKey:' . $this->getPrefix() . $key, "memcached");
     }
     return $setReturn;
 }
Example #2
0
 public function getSlaveBackClient()
 {
     if ($this->slaveBackClient) {
         return $this->slaveBackClient;
     }
     API_Redis_Factory::fetchRedisClient($this, "slaveback");
     if ($this->slaveBackClient) {
         return $this->slaveBackClient;
     } else {
         return false;
     }
 }