php - 如何使用 init 文件和无密码连接到 redis 服务器
问题描述
首先,我有用于连接 redis 服务器的包装数据源类。
我有一个 ip port 和 passwd 等的 init 文件;
内容 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>
但不幸的是,我无法在 html 中获得 corrent value:127.0.0.1 。
我发现问题是 try{}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服务器好像没什么问题,谁能帮帮我?
解决方案
我已经解决了这个问题
self::$redis = new \Redis();// it is wrong
$redis=new \Redis();//it is right
推荐阅读
- git - 如何查看推送或拉取或克隆远程仓库的计算机的 IP 地址
- reactjs - 在 redux saga 生成器的 map 中解析 promise(s)
- entitlements - 将数据推送到 Open Policy Agent 时如何处理容器重启
- json - Angular,如何订阅嵌套的 JSON 对象?
- odata - 如何将 $filter 添加到 XML 中的 OData 聚合绑定
- javascript - 如何重用一个组件确实在多个组件之间挂载了等效的钩子
- xml - XSL 将 XML 转换为更小的 XML
- node.js - 使用 NodeJS/Puppeteer 下载多个图像
- python - 为什么在尝试计算具有较大初始值的值时总是出现溢出错误?
- python - 使用 Cmake 配置暗网时出错