この記事では主に YII フレームワークで memcache を使用する方法を紹介し、Yii フレームワークで memcache を使用する際の設定、使用法、注意事項をサンプルの形式で分析します。必要な友人は参考にしてください。 YII フレームワークのメソッドでの memcache の使用について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
yii では memcache を非常に便利に使用できます
1. 設定 main.php のコンポーネントにキャッシュ設定を追加します
array( 'components'=>array( 'cache'=>array( 'class'=>'CMemCache', 'servers'=>array( array( 'host'=>'server1', 'port'=>11211, 'weight'=>60, ), array( 'host'=>'server2', 'port'=>11211, 'weight'=>40, ), ), ), ), )
1) class はすべてのキャッシュ クラスを指定します。CMemCache は memcache です
2) 複数のキャッシュ ポーリングを使用する場合、各キャッシュに重みを割り当てることができます。キャッシュが 1 つだけの場合は、この構成を追加せずに実行できます。2. を使用してmemcacheを呼び出す方法も非常に簡単です
$key = 'people'; $value = json_encode(array('name'=>'ball', 'age'=>'male')); $expire = 10; yii::app()->cache->set($key, $value, $expire); Yii::app()->cache->get($key); Yii::app()->cache->delete($key);
3. 問題memcache にアクセスするために一律に yii 拡張機能を使用する場合、問題は発生しません。しかし、実際には、あなたは Yii を使ってバックエンドを開発しているが、フロントデスクのクラスメートは Yii を使用せず、ネイティブの memcache API を使用してデータを操作するという状況が発生します。この時点でいくつかの問題が発生します。
上記の 2 番目のパートの例のように、ネイティブの memcache API、Memcache::get を使用し、people をキーとして使用すると、値を取得できないことがわかります。
その理由は、Yii のセットがキーと値の両方を処理するためです。デフォルトでは、キーにはプレフィックスが付けられ、md5 変換され、値は Serialized() です。 Memcache::get('people') を使用して値を取得できないのも不思議ではありません。
解決策:
Yii の memcache 拡張機能が追加の「小さなアクション」を実行しないように、簡単な方法を設定できます。
'cache' => array( 'class' => 'system.caching.CMemCache', 'servers' => array( array('host' => '127.0.0.1', 'port' => 11211)), 'keyPrefix' => '', 'hashKey' => false, 'serializer' => false)
: デフォルトで CApplication::getId() メソッドによって生成されるキーのプレフィックス。 hashKey
: キーのハッシュ操作、デフォルトは md5 serializer
: 値のシリアル化メソッド、デフォルトは Serialize これらを空白のままにすると、拡張された動作はネイティブ Memcache と一致します。
4. その他の memcache メソッド呼び出し yii の拡張機能には、memcache の最も一般的な操作のみがあり、ネイティブ memcache のデクリメントやインクリメントなどの操作はありません。これらの方法を使用したい場合はどうすればよいでしょうか?拡張機能の getMemCache メソッドを使用してネイティブ memcache オブジェクトを取得し、その後ネイティブ メソッドを使用できます。
$mem = Yii::app()->cache->getMemCache(); $res = $mem->decrement($key);
以上がYII での memcache の使用の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。