我有以下代码,我想通过传递$ redisdb param连接到2个服务器。 不幸的是二审获得第一次联系。无法在PHP中实例化两次相同的类
$redis = new RedisHandler();
$redis2 = new RedisHandler('redis2'); //this one gets first $redis connection
我在做什么错?
class RedisHandler
{
static $db = null;
public function __construct($redisdb = 'redis') {
// opening db connection
return self::connect($redisdb);
}
static public function connect($redisdb)
{
global $config;
if (self::$db === null)
{
try {
$redisClient = new Redis();
$redisClient -> connect($config[$redisdb]['host'], $config[$redisdb]['port'], $config[$redisdb]['timeout'], null, $config[$redisdb]['reservedInterval']);
$redisClient->setOption(Redis::OPT_READ_TIMEOUT, 100);
if (!$redisClient) { throw new Exception("Can't connect to Redis"); }
} catch (Exception $e) {
die('Failed to connect to Redis '.$e->getMessage());
}
self::$db = $redisClient;
return self::$db;
//return $m;
}
else
{
// return self::$db;
return self::$db;
}
}
}
那么,你是静态存储只有一个连接,没有太大的不同,从一个全局变量... – deceze