PHP實(shí)現(xiàn)的Redis多庫(kù)選擇功能單例類(lèi)
本文實(shí)例講述了PHP實(shí)現(xiàn)的Redis多庫(kù)選擇功能單例類(lèi)。分享給大家供大家參考,具體如下:
前言
qq群里有同學(xué)問(wèn)redis如何進(jìn)行多庫(kù)選擇,用php實(shí)現(xiàn)了一下,還望各位多多指點(diǎn)
代碼
<?php
class MultiRedisConnect
{
/**
* hostname
*
* @var string
*/
const REDISHOSTNAME = "127.0.0.1";
/**
* port
*
* @var int
*/
const REDISPORT = 6379;
/**
* timeout
*
* @var int
*/
const REDISTIMEOUT = 0;
/**
* password
*
* @var string
*/
const REDISPASSWORD = "123456";
/**
* 類(lèi)單例數(shù)組
*
* @var array
*/
private static $instance = array();
/**
* redis連接句柄
*
* @var object
*/
private $redis;
/**
* hash的key
*
* @var int
*/
private $hash;
/**
* 私有化構(gòu)造函數(shù),防止類(lèi)外實(shí)例化
*
* @param int $dbnumber
*/
private function __construct ($dbnumber)
{
$dbnumber = (int) $dbnumber;
$this->hash = $dbnumber;
$this->redis = new Redis();
$this->redis->connect(self::REDISHOSTNAME, self::REDISPORT, self::REDISTIMEOUT);
$this->redis->auth(self::REDISPASSWORD);
$this->redis->select($dbnumber);
}
private function __clone ()
{}
/**
* 獲取類(lèi)單例
*
* @param int $dbnumber
* @return object
*/
public static function getRedisInstance ($dbnumber)
{
$hash = (int) $dbnumber;
if (! isset(self::$instance[$hash])) {
self::$instance[$hash] = new MultiRedisConnect($dbnumber);
}
return self::$instance[$hash];
}
/**
* 獲取redis的連接實(shí)例
*
* @return object
*/
public function getRedisConnect ()
{
return $this->redis;
}
/**
* 關(guān)閉單例時(shí)做清理工作
*/
public function __destruct ()
{
$key = $this->hash;
self::$instances[$key]->redis->close();
self::$instances[$key] = null;
}
}
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php+redis數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php Redis函數(shù)用法實(shí)例總結(jié)【附php連接redis單例類(lèi)】
- php操作redis中的hash和zset類(lèi)型數(shù)據(jù)的方法和代碼例子
- PHP實(shí)現(xiàn)操作redis的封裝類(lèi)完整實(shí)例
- php 使用redis鎖限制并發(fā)訪(fǎng)問(wèn)類(lèi)示例
- php實(shí)現(xiàn)的redis緩存類(lèi)定義與使用方法示例
- PHP實(shí)現(xiàn)的Redis操作通用類(lèi)示例
- PHP操作redis實(shí)現(xiàn)的分頁(yè)列表,新增,刪除功能封裝類(lèi)與用法示例
- PHP基于redis計(jì)數(shù)器類(lèi)定義與用法示例
- PHP購(gòu)物車(chē)類(lèi)Cart.class.php定義與用法示例
- php實(shí)現(xiàn)仿寫(xiě)CodeIgniter的購(gòu)物車(chē)類(lèi)
- PHP+redis實(shí)現(xiàn)的購(gòu)物車(chē)單例類(lèi)示例
相關(guān)文章
學(xué)習(xí)PHP的數(shù)組總結(jié)【經(jīng)驗(yàn)】
這篇文章主要介紹了學(xué)習(xí)PHP的數(shù)組總結(jié)【經(jīng)驗(yàn)】,需要的朋友可以參考下2016-05-05
PHP實(shí)現(xiàn)動(dòng)態(tài)執(zhí)行代碼的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)執(zhí)行代碼的方法,涉及PHP中create_function函數(shù)的使用技巧,需要的朋友可以參考下2016-03-03
php 函數(shù)使用可變數(shù)量的參數(shù)方法
下面小編就為大家?guī)?lái)一篇php 函數(shù)使用可變數(shù)量的參數(shù)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
php調(diào)整gif動(dòng)畫(huà)圖片尺寸示例代碼分享
這篇文章主要介紹了如何使用php調(diào)整gif動(dòng)畫(huà)圖片尺寸,大家可以參考使用2013-12-12
實(shí)現(xiàn)php刪除鏈表中重復(fù)的結(jié)點(diǎn)
在本篇文章中,我們給大家?guī)?lái)了關(guān)于php刪除鏈表中重復(fù)的結(jié)點(diǎn)的相關(guān)知識(shí)點(diǎn)內(nèi)容以及相關(guān)代碼,有興趣的朋友們參考下。2018-09-09

