选择语言 :

 Driver_Cache_Driver_Redis::_connect

连接服务器

null Driver_Cache_Driver_Redis::_connect( )
File: ./drivers/cache/redis/redis.class.php
protected function _connect()
{
    if ($this->_redis)return;
    if (!$this->config_name)return;

    $config_name = $this->config_name;

    if (!isset(Cache_Driver_Redis::$redis[$config_name]))
    {
        $class = 'Redis';
        if (!class_exists($class, false))
        {
            throw new Exception(__('Your redis module of php is not installed, please install the module from http://pecl.php.net/package/redis'));
        }

        Cache_Driver_Redis::$redis[$config_name] = new $class();
        Cache_Driver_Redis::$redis_num[$config_name] = 0;

        foreach ($this->servers as $server)
        {
            $server += array
            (
                'host'       => '127.0.0.1',
                'port'       => 6379,
                'persistent' => true,
                'timeout'    => 2,
            );

            if ( $server['persistent'] )
            {
                $action = 'pconnect';
            }
            else
            {
                $action = 'connect';
            }

            try
            {
                $time   = microtime(1);
                $status = Cache_Driver_Redis::$redis[$config_name]->$action($server['host'], $server['port'], $server['timeout']);
                $time   = microtime(1)-$time;
            }
            catch (Exception $e)
            {
                $status = false;
            }

            if ($status)
            {
                if (IS_DEBUG)Core::debug()->info('connect cache redis server '.$server['host'].':'.$server['port'] . ' time:'.$time);
                break;
            }
            else
            {
                if (IS_DEBUG)Core::debug()->error('error connect cache redis server '.$server['host'].':'.$server['port'] . ' time:'.$time);
            }
        }
    }

    # 断开引用关系
    unset($this->_redis);

    # 设置对象
    $this->_redis = & Cache_Driver_Redis::$redis[$config_name];

    Cache_Driver_Redis::$redis_num[$config_name]++;
}