in common/file/FSOFRedis.php [92:136]
public function get_redis()
{
if (!isset($this->m_redis))
{
$hosts_count = count($this->hosts);
$retry = $this->retry_count;
$rand_num = rand() % $hosts_count;
$ret = false;
do{
try{
$redis_cli = new \Redis();
if($this->connect_type == FSOFConstants::FSOF_SERVICE_REDIS_CONNECT_TYPE_TCP)
{
$node = $this->hosts[$rand_num];
$ret = $redis_cli->connect($node[0],$node[1],$this->connect_timeout);
$redis_cli->setOption(\Redis::OPT_READ_TIMEOUT, $this->read_timeout);
$rand_num = ($rand_num + 1)%$hosts_count;
if (!$ret)
{
$this->logger->warn("connect redis failed[{$node[0]}:{$node[1]}]");
}
}else{
$ret = $redis_cli->connect("/var/fsof/redis.sock",-1,FSOFConstants::FSOF_SERVICE_REDIS_PORT,$this->connect_timeout);
}
if($ret)
{
break;
}
}catch (\Exception $e){
$this->logger->error('connect redis excepiton:'.$e->getMessage().', errno:' . $e->getCode());
}
}while($retry-- > 0);
if($ret)
{
$this->m_redis = $redis_cli;
}
else
{
$this->logger->error('connect redis failed:|errno:' . $redis_cli->getLastError());
throw new \Exception("连接redis异常");
}
}
return $this->m_redis;
}