选择语言 :

 Module_Storage_Driver_Redis::_connect

连接服务器

null Module_Storage_Driver_Redis::_connect( )
File: ./modules/storage/driver/redis.class.php
protected function _connect()
{
    if ($this->_redis)return;
    if (!$this->config_name)return;

    $config_name = $this->config_name;

    if (!isset(Storage_Driver_Redis::$redis[$config_name]))
    {
        $class = 'Redis';
        Storage_Driver_Redis::$redis[$config_name] = new $class();
        Storage_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 = Storage_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 storage redis server '.$server['host'].':'.$server['port'] . ' time:'.$time);
                break;
            }
            else
            {
                if (IS_DEBUG)Core::debug()->error('error connect storage redis server '.$server['host'].':'.$server['port'] . ' time:'.$time);
            }
        }
    }

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

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

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