In diesem Artikel wird hauptsächlich die Methode zur Verwendung von Memcache im YII-Framework vorgestellt und die Konfiguration, Verwendung und Vorsichtsmaßnahmen für die Verwendung von Memcache im Yii-Framework anhand von Beispielen analysiert
Die Beispiele in diesem Artikel werden erklärt. Erfahren Sie, wie Sie Memcache im YII-Framework verwenden. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Memcache kann problemlos in yii verwendet werden
1. Konfiguration
Cache-Konfiguration zu den Komponenten von main.php hinzufügen
array( 'components'=>array( 'cache'=>array( 'class'=>'CMemCache', 'servers'=>array( array( 'host'=>'server1', 'port'=>11211, 'weight'=>60, ), array( 'host'=>'server2', 'port'=>11211, 'weight'=>40, ), ), ), ), )
Hinweis:
1) Klasse gibt alle Cache-Klassen an, CMemCache ist es memcache
2) Wenn mehrere Cache-Abfragen verwendet werden sollen, kann jedem Cache eine Gewichtung zugewiesen werden. Wenn nur ein Cache vorhanden ist, können Sie dies tun, ohne diese Konfiguration hinzuzufügen.
2. Die Methode zum Aufrufen von Memcache mit
ist ebenfalls sehr einfach
$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);
Weitere APIs finden Sie im Abschnitt CMemCache des yii-Handbuchs.
3. Probleme
Wenn Sie einheitlich die Erweiterung von yii verwenden, um auf den Memcache zuzugreifen, tritt kein Problem auf. In Wirklichkeit wird es jedoch eine Situation geben: Sie verwenden Yii, um das Backend zu entwickeln, aber die Klassenkameraden an der Rezeption verwenden Yii nicht, sondern verwenden die native Memcache-API, um die Daten zu verwalten. Zu diesem Zeitpunkt werden einige Probleme auftreten.
Wie im zweiten Beispiel oben gezeigt, werden Sie feststellen, dass Sie den Wert nicht erhalten können, wenn Sie die native Memcache-API Memcache::get verwenden und „people“ als Schlüssel verwenden!
Der Grund dafür ist, dass der Satz von yii sowohl den Schlüssel als auch den Wert verarbeitet. Standardmäßig wird dem Schlüssel ein Präfix vorangestellt und MD5 transformiert, und der Wert ist serialisiert(). Es ist kein Wunder, dass Sie den Wert nicht mit Memcache::get('people') ermitteln können.
Lösung:
Eine einfache Methode kann so konfiguriert werden, dass die Memcache-Erweiterung von Yii keine zusätzlichen „kleinen Aktionen“ ausführt.
'cache' => array( 'class' => 'system.caching.CMemCache', 'servers' => array( array('host' => '127.0.0.1', 'port' => 11211)), 'keyPrefix' => '', 'hashKey' => false, 'serializer' => false)
Unter ihnen:
keyPrefix: Das Präfix des Schlüssels, generiert von CApplication::getId() Methode standardmäßig.
hashKey: Hash-Operation für Schlüssel ausführen, Standard-MD5
Serializer: Serialisierungsmethode des Werts, Standard-Serialize
lässt diese leer, die Erweiterung Das Verhalten stimmt mit dem nativen Memcache überein.
4. Weitere Memcache-Methodenaufrufe
In der yii-Erweiterung gibt es nur die häufigsten Operationen von Memcache und keine Dekrementierung Ähnlich wie nativer Memcache und Inkrementierung sowie andere Vorgänge. Was ist, wenn Sie diese Methoden verwenden möchten? Sie können die getMemCache-Methode in der Erweiterung verwenden, um das native Memcache-Objekt abzurufen, und dann die native Methode verwenden.
$mem = Yii::app()->cache->getMemCache(); $res = $mem->decrement($key);
Bei Verwendung der nativen Methode ist es am besten, die oben in (3) genannte Konfiguration festzulegen, andernfalls gleichzeitig die Erweiterungsmethode von yii und die native Methode von Memcache zu verwenden Die Zeit wird Ärger bringen.
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von Memcache in YII. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!