ホームページ >バックエンド開発 >PHPチュートリアル >PHP操作memcacheキャッシュ方法共有_PHPチュートリアル
一般に、同時実行の量が大きくない場合、キャッシュ技術を使用しなくても影響はありませんが、同時実行の量が多い場合は、キャッシュ技術を使用することが非常に重要です。もちろん、高い同時実行性を解決するためのテクノロジーはたくさんありますが、ここではキャッシュの観点から memcache を使用することの利便性についてのみ説明します。
memcache を使用するための前提条件は、最初にサーバー上に memcahche 環境を設定することです。memcahce が正常に接続できることを確認したら、プログラムで使用できます。?
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
/** * Memcache キャッシュ操作 * @著者hxm * @バージョン 1.0 * @since 2015.05.04 */ クラス MCache は CacheFace を実装するオブジェクトを拡張します { private $mem = null //Mem オブジェクト ;
private $sId = 1 //サーバーサービスID ;
/** * Memcache を初期化します * * @return オブジェクト */ パブリック関数 __construct() { if ( !class_exists('Memcache') ) { throw new QException('PHP 拡張機能が存在しません: Memcache'); } $this->mem = 新しい Memcache(); }
/** * memcahce サービスへのリンク * * @アクセス非公開 * @param string $key キーワード * @param string $value キャッシュコンテンツ * @配列を返す */ プライベート関数 connect( $sid ) { $file = $this->CacheFile(); $file が必要です; if(! isset($cache) ) { throw new QException('キャッシュ構成ファイルが存在しません'.$file); } $server = $cache[$this->cacheId]; $sid = isset($sid) == 0 ? $this->sId : $sid;//memcache サービスの選択 if ( ! $server[$sid]) { throw new QException('現在の操作のキャッシュ サーバー構成ファイルが存在しません'); } $host = $server[$sid]['host']; $port = $server[$sid]['ポート']; 試してください{ $this->mem->connect( $host , $port ); } catch (例外 $e) { exit('memecache 接続に失敗しました。エラー メッセージ: '. $e->getMessage()); } }
/** * ライトキャッシュ * * @アクセス非公開 * @param string $key キーワード * @param string $value キャッシュコンテンツ * @配列を返す */ パブリック関数 set( $key , $value , $sid , $expire = 0) { $data = $this->get($key, $sid) //キー値がすでに存在する場合 if( $data ) { return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire); } 他 { return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire); } }
/** * 読み取りキャッシュ * * @アクセス非公開 * @param string $key キーワード * @param int $sid どのmemcacheサーバーを選択するか * @配列を返す */ パブリック関数 get( $key , $sid) { $this->connect( $sid ); return $this->mem->get($key); }
/** * 保存されているすべての要素をクリーン (削除) します * * @アクセス非公開 * @配列を返す */ パブリック関数 flash() { $this->connect(); return $this->mem->flush(); } /** * キャッシュを削除します * * @アクセス非公開 * @param string $key キーワード * @param int $sid どのmemcacheサーバーを選択するか * @配列を返す */ パブリック関数remove( $key , $sid) { $this->connect(); return $this->mem->delete($key); }
/** * デストラクター * 最後にmemcacheを閉じます */ パブリック関数 __destruct() { /*if(! $this->mem) { $this->mem->close(); }*/ } } |
以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。