- class MemcacheModel {
- private $mc = null;
- /**
- * サーバーの追加と memcahced オブジェクトの作成に使用されるコンストラクター メソッド
- */
- function __construct(){
- $params = func_get_args();
- //memcache サーバーが複数ある場合
- if( count($params) > 1){
- foreach ($params as $v){
- call_user_func_array(array($mc, 'addServer'),
- ); }
- //memcache サーバーが 1 つしかない場合
- } else {
- call_user_func_array(array($mc, 'addServer'), $params[0]);
- }
- $this->mc=$mc;
- / **
- * memcached オブジェクトを取得します
- * @return object memcached オブジェクト
- */
- function getMem(){
- return $this->mc;
- }
- /**
- * mem が正常に接続されているかどうかを確認します
- * @return bool 接続が成功した場合は true を返し、そうでない場合は false を返します
- */
- function mem_connect_error(){
- $stats=$this-> mc- >getStats();
- if(emptyempty($stats)){
- }else{
- }
- }
-
- プライベート関数 addKey($tabName, $key){
- $keys =$ this->mc->get($tabName);
- if(emptyempty($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; // 存在する場合は 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(!emptyempty($keys)){
- foreach($keys as $key){
- $this->mc->delete($ key, 0); //0 即時削除を示します
- }
- }
- //テーブルのすべての SQL キーを削除します
- $this->mc->delete($tabName, 0); #&*/
- function delone( $sql){
- $key=md5($sql);
- $this->mc->delete($key, 0); //0 はすぐに削除することを意味します
- }
- }
- ?>
-
-
- コードをコピー
-
-
-
-
-
-
-
|