この記事では、PHP で Memcache を使用するためのサンプル プログラムを紹介します。必要な方は参考にしてください。
コードは次のとおりです | コードをコピー |
/* 著者:オーグマン(lyc) /* メールアドレス: jar-c@163.com /* メモリキャッシュ管理 */ クラス Yc_Memcache{ プライベート $memcache=null パブリック関数 __construct(){ } /** * データベースに接続します * * @param 混合 $host * @param 混合 $port * @param 混合 $timeout */ パブリック関数 connect($host,$port=11211,$timeout=1){ if(!function_exists(memcache_connect)){ return FALSE;} $this->memcache=@memcache_connect($host,$port,$timeout); if(empty($this->memcache)){ FALSE を返します。 }その他{ TRUE を返します。 } } /** *ストレージ値 * * @param 混合 $key * @param 混合 $var * @parammixed$flag デフォルトは 0、圧縮なし 圧縮ステータスを入力します: MEMCACHE_COMPRESSED * @parammixed $expire デフォルトのキャッシュ時間 (単位は秒) */ パブリック関数セット($key,$var,$flag=0,$expire=10){ $f=@memcache_set($this->memcache,$key,$var,$flag,$expire); if(空($f)){ FALSE を返します。 }その他{ TRUE を返します。 } } /** * 対応するキーの値を取得します * * @param 混合 $key * @param 混合 $flags * $flags この値が 1 の場合、シリアル化を意味します * ただし圧縮されていません。2 はシリアル化なしの圧縮を示します。 * 3 は圧縮とシリアル化を示し、0 は圧縮とシリアル化がないことを示します */ パブリック関数 get($key,$flags=0){ $val=@memcache_get($this->memcache,$key,$flags); $val を返します。 } /** * キャッシュされたキーを削除します * * @param 混合 $key * @param 混合 $timeout */ パブリック関数削除($key,$timeout=1){ $flag=@memcache_delete($this->memcache,$key,$timeout); $フラグを返す } /** * キャッシュを更新しますが、メモリ領域は解放しません * */ パブリック関数 flash(){ memcache_flush($this->memcache); } /** * メモリ接続を閉じます * */ パブリック関数 close(){ memcache_close($this->memcache); } /** * 対応するキーの値を置き換えます * * @param 混合 $key * @param 混合 $var * @param 混合 $flag * @param 混合 $expire */ パブリック関数 replace($key,$var,$flag=0,$expire=1){ $f=memcache_replace($this->memcache,$key,$var,$flag,$expire); $f を返します。 } /** * 大きな値の自動圧縮をオンにします * * @param 混合 $threshold ユニット b * @parammixed $min_saveings デフォルト値は 0.2 で、これは 20% の圧縮率を意味します */ パブリック関数 setCompressThreshold($threshold,$min_saveings=0.2){ $f=@memcache_set_compress_threshold($this->memcache,$threshold,$min_saveings); $f を返します。 } /** * サーバーのオンライン/オフラインステータスを取得するために使用されます * * @param 混合 $host * @param 混合 $port */ パブリック関数 getServerStatus($host,$port=11211){ $re=memcache_get_server_status($this->memcache,$host,$port); $re を返します。 } /** * サーバープール内のすべてのサーバーのキャッシュ統計 * * @parammixed $type 取得されると予想される統計情報の種類 使用できる値は、{reset, malloc,maps,cachedump,slabs,items,sizes} です * @parammixed$slabidcachedump コマンドはサーバーを完全に占有し、通常はより厳密なチューニングに使用されます * @parammixed $limit サーバーから取得したエンティティの数 */ パブリック関数 getExtendedStats($type='',$slabid=0,$limit=100){ $re=memcache_get_extended_stats($this->memcache,$type,$slabid,$limit); $re を返します。 } } /***********テストエリア*************************/ $mem=新しいYc_Memcache(); $f=$mem->connect('125.64.41.138',12000); var_dump($f); if($f){ // $mem->setCompressThreshold(2000,0.2); $mem->set('key','hello',0,30); // var_dump($mem->delete('key1')); // $mem->flush(); // var_dump($mem->replace('hao','d')); // echo $mem->get('key'); echo $mem->getServerStatus('127.0.0.1',12000); echo $mem->get('key'); echo ' '; |