Во-первых, у меня есть класс Datasource для подключения к серверу Redis.
И у меня есть файл инициализации ip-порта и passwd и т.д .;
Файл redis.ini.php содержимого:
<?php
$config['redis']['instance1'] = array(
'default' => array(
'host' => '127.0.0.1',
'port' => '6379',
'timeout' => 5,
'pconnect' => 1,
'password' => '',
)
);
$config['redis']['instance2'] = array(
'default' => array(
'host' => '127.0.0.1',
'port' => '6379',
'timeout' => 5,
'pconnect' => 1,
'password' => '',
)
);
И код класса Datasource.php:
<?php
namespace common;
class Datasource {
public static $config_name;
public static $server_region;
public static $redis_config;
public function __construct() {}
public static function getRedis($config_name = NULL, $server_region = 'default') {
self::$config_name=$config_name;
self::$server_region=$server_region;
global $config;
self::$redis_config = $config['redis'][$config_name];
if (self::$config_name && self::$redis_config && self::$server_region) {
try {
self::$redis = new \Redis();
self::$redis->connect(self::$redis_config[$server_region]['host'], self::$redis_config[$server_region]['port']);
} catch (Exception $e) {
self::$redis = null;
}
} else {
self::$redis = null;
}
return self::$redis_config[$server_region]['host'] ;
}
}
Теперь я хочу использовать этот класс в HTML-коде:
<body style="height:100%" >
<?php
include "o1ws1v/class/common/Datasource.php";
include 'o1ws1v/conf/redis.ini.php';
$redis_obj = common\Datasource::getRedis('instance1');
echo $redis_obj;
?>
</body>
НоК сожалению, я не могу получить значение corrent: 127.0.0.1 в html.
Я обнаружил, что проблема заключалась в попытке {} catch {}, когда я удаляю этот код, он работает нормально.
//delete these code, it works fine
try {
self::$redis = new \Redis();
self::$redis->connect(self::$redis_config[$server_region]['host'], self::$redis_config[$server_region]['port']);
} catch (Exception $e) {
self::$redis = null;
}
Я задал один вопрос час назад в stackoverflow, извините за еще один вопрос.Мой босс требует, чтобы я решил этот вопрос сегодня.
Я определил свой сервер redis без пароля для входа.Кажется, нет ничего плохого в подключении сервера redis. Кто мне может помочь?