php Redis連接池

什么是連接池

redis連接靜態(tài)類。redis連接池 減少redis的重復(fù)連接,降低內(nèi)存消耗!

通常情況下, 當(dāng)我們需要做redis操作時, 會創(chuàng)建一個連接, 并基于這個連接進(jìn)行redis操作, 操作完成后, 釋放連接,
一般情況下, 這是沒問題的, 但當(dāng)并發(fā)量比較高的時候, 頻繁的連接創(chuàng)建和釋放對性能會有較高的影響
于是, 連接池就發(fā)揮作用了
連接池的原理是, 通過預(yù)先創(chuàng)建多個連接, 當(dāng)進(jìn)行redis操作時, 直接獲取已經(jīng)創(chuàng)建的連接進(jìn)行操作, 而且操作完成后, 不會釋放, 用于后續(xù)的其他redis操作
這樣就達(dá)到了避免頻繁的redis連接創(chuàng)建和釋放的目的, 從而提高性能了
<?php
    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)//兩個參數(shù)要連接的服務(wù)器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];
        }
    }

使用實(shí)例

<?php 
require 'RedisPool.php';
$conf = array( 
    'RA' => array('127.0.0.1',6379)   //定義Redis配置
);
RedisPool::addServer($conf); //添加Redis配置
$redis = RedisPool::getRedis('RA'); //連接RA,使用默認(rèn)0庫
$redis->set('user','private');
echo $redis ->get('user');
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 本文將從Redis的基本特性入手,通過講述Redis的數(shù)據(jù)結(jié)構(gòu)和主要命令對Redis的基本能力進(jìn)行直觀介紹。之后概...
    kelgon閱讀 61,681評論 23 625
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,890評論 11 349
  • 四表姐夫:“慈禧太后…知道不?” 馬大三:“知道!” 四表姐夫:“八大臣,知道不!” 馬大三:“知道,嗯…知不道”...
    封劍主嘆希奇閱讀 1,042評論 0 0
  • “池塘邊的榕樹下,知了在聲聲叫著夏天……”六年的小學(xué)生活結(jié)束了。這是我們這些作為小學(xué)生最后一次站在這個操場上,拿著...
    邂逅在巴黎閱讀 303評論 1 0

友情鏈接更多精彩內(nèi)容