<?php
// redis连接池
class RedisPool
{
private static $connections = array(); // 已经连接的对象.
private static $servers = array(); // 服务集群配置
private function __construct() // 私有的构造方法 无法被外部直接实例化.
{
}
/**
* 执行添加redis服务器.
* @param $config array 需要进行连接的redis配置 array('default' => array('host' => '','port' => '','password' => ''))
*/
public static function addServer()
{
if(empty(self::$servers)) {
self::$servers = new \Config\Redis();
}
}
/**
* 获取redis单例
* @param string $node
* @param int $select
* @return mixed
*/
public static function getInstance($node='default',$select=0)
{
if(!key_exists($node,self::$connections)) {
// 添加服务器配置.
self::addServer();
// 初始化连接.
$redis = new Redis();
$redis->connect(self::$servers[$node]['host'],self::$servers[$node]['port']);
if (!empty(self::$servers[$node]['password'])) {
$redis->auth(self::$servers[$node]['password']);
}
self::$connections[$node] = $redis;
self::$connections[$node]->select($select);
}
return self::$connections[$node];
}
}
网友评论