什麼是連接池?
redis連接靜態類。redis連接池 減少redis的重複連接,降低內存消耗!
class RedisPool
{
private static $connections = array(); //定義一個對象池
private static $servers = array(); //定義redis配置文件
public static function addServer($conf) //定義添加redis配置方法
{
foreach ($conf as $alias => $data){
self::$servers[$alias]=$data;
}
}
public static function getRedis($alias,$select = 0)//兩個參數要連接的服務器KEY,要選擇的庫
{
if(!array_key_exists($alias,self::$connections)){ //判斷連接池中是否存在
$redis = new Redis();
$redis->connect(self::$servers[$alias][0],self::$servers[$alias][1]);
self::$connections[$alias]=$redis;
if(isset(self::$servers[$alias][2]) && self::$servers[$alias][2]!=""){
self::$connections[$alias]->auth(self::$servers[$alias][2]);
}
}
self::$connections[$alias]->select($select);
return self::$connections[$alias];
}
}
使用過程:
require 'RedisPool.php';
$conf = array(
'RA' => array('127.0.0.1',6379) //定義Redis配置
);
RedisPool::addServer($conf); //添加Redis配置
$redis = RedisPool::getRedis('RA'); //連接RA,使用默認0庫
$redis->set('user','private');
echo $redis ->get('user');