ホームページ >バックエンド開発 >PHPチュートリアル >PHP メモリ キャッシュ Memcached クラス コード_PHP チュートリアル

PHP メモリ キャッシュ Memcached クラス コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:11:11821ブラウズ

PHP メモリ キャッシュ Memcached クラスが必要な友人は、それを参照できます。

コードは次のとおりです コードをコピー


class MemcacheModel {
private $mc = null;
/**
* サーバーの追加と memcahced オブジェクトの作成に使用されるコンストラクター メソッド
*/
function __construct(){
$ params = func_get_ar gs ();
$mc = new Memcache;
//memcache サーバーが複数ある場合
if( count($params) > 1){
foreach ($params as $v){
call_user_func_array(array ($mc, 'addServer'), $v);
}
//memcache サーバーが 1 つしかない場合
} else {
call_user_func_array(array($mc, 'addServer'), $params[0]);
}
$this->gt ;mc=$mc;
}
/**
* memcached オブジェクトを取得します
* @return object memcached object
*/
function getMem(){
return $this->mc;
}
/**
* mem が正常に接続されているかどうかを確認します
* @return bool 接続が成功した場合は true を返し、そうでない場合は false を返します
*/
function mem_connect_error(){
$stats=$this->mc->getStats();
if(empty($stats)){
return false;
}else{
return true;
}
}

プライベート関数 addKey($tabName , $key){
$keys=$this->mc->get($tabName);
if(empty($keys)){
$keys=array();
}
//キーが存在しない場合は、1 つ追加します
if(!in_array($key, $keys)) {
$keys[]=$key //このテーブルのキーに新しいキーを追加します
$ this->mc-> ;set($tabName, $keys, MEMCACHE_COMPRESSED, 0);
return true; //存在しない場合は true を返す
}else{
return false; // 存在する場合は return true; false
}
}
/**
* memcache にデータを追加します
* @param string $tabName キャッシュする必要があるデータテーブルの名前です
* @param string $sql sql を memcache のキーとして使用します
* @parammixed $data キャッシュする必要があるデータキャッシュされる
*/
function addCache($tabName, $sql, $data){
$key=md5($sql);
//存在しない場合
if($ this->addKey($tabName, $key)){
$ this->mc->set($key, $data, MEMCACHE_COMPRESSED, 0);
}
}
/**
* memcahce に保存されているデータを取得します
* @param string $sql SQL キーを使用します
* @returnmixed キャッシュ内のデータを返します
*/
function getCache($sql){
$key=md5($sql );
return $this->mc->get($key);
}


/**
* 同じテーブルに関連するすべてのキャッシュを削除します
* @param string $tabName データテーブルの名前
*/
function delCache($tabName){
$keys=$this->mc ->get($tabName);
//同じテーブルのすべてのキャッシュを削除します
if(!empty($keys)){
foreach($キーとして $key){
$this->mc-> delete($key, 0); //0 はすぐに削除することを意味します
}
}
//テーブルのすべての SQL キーを削除します
$this-> mc->delete($tabName, 0);
}
/ **
* 単一ステートメントのキャッシュを削除します
* @param string $sql SQL ステートメントが実行されました
*/
function delone($sql){
$key=md5($sql);
$this->mc-> ;delete($key, 0); //0 はすぐに削除することを意味します
}
}


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444667.html技術記事 PHP のメモリ キャッシュ Memcached クラスが必要な友人は、それを参照できます。 コードは次のとおりです。 コードをコピーします。 ?PHP class MemcacheModel { private $mc = null /** * サーバーの追加と作成に使用されるコンストラクター メソッド。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。