Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse der Gründe, warum Yii CFileCache den Wert nicht erhalten kann

Analyse der Gründe, warum Yii CFileCache den Wert nicht erhalten kann

不言
不言Original
2018-06-22 11:26:051395Durchsuche

In diesem Artikel wird hauptsächlich die Analyse der Gründe vorgestellt, warum Yii CFileCache den Wert nicht erhalten kann. Es ist sehr gut und hat einen Referenzwert.

Ich habe es in der Konfigurationsdatei konfiguriert

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),

Setzen Sie

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),

im Controller und öffnen Sie dann die Datenbank ‘schemaCachingDuration'=>3600,

Als ich es zum ersten Mal benutzte, gab es eine Cache-Datei, und ich stellte fest, dass sie den Zugriff erheblich beschleunigte

Aber im Laufe der Zeit, vielleicht nach einer gewissen Zeitspanne 10 Minuten habe ich festgestellt, dass die Cache-Datei unter Runtime/Cache plötzlich verschwunden ist.

Ich kenne den Grund nicht, bevor ich dieses Problem entdeckt habe Außerdem wurde festgestellt, dass sich im Cache-Verzeichnis Ordner befinden: 0a d6 63 3a. Funktion: Warum verschwinden die zwischengespeicherten Dateien plötzlich?

Die zwischengespeicherten Dateien im Datenraum der Festplatte D sind sehr groß

1. Pufferanforderungen von yii Konfigurieren Sie es in main.php,

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)

Nachdem die Konfiguration abgeschlossen ist, fügen Sie sie einfach im Controller hinzu....

Yii::app ()->cache->set($key,$value,$expire);
Yii::app ()->cache->get($key);

2. Konfigurieren Sie mehrere Caches

main.php-Konfiguration

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)

Der Controller muss nur mit der entsprechenden Cacheid aufrufen

Wie zum Beispiel:

3. Seitenpufferung bedeutet, die gesamte Seite statisch zu machen Yii::app ()->dbcache

Die main.php-Konfiguration ist immer noch dieselbeController: Das können Sie Verwenden Sie die COutputCache-Klasse als Verhaltensfilter in unserer Controller-Klasse.

public function filters() {
return array (
array (
‘COutputCache',
‘duration' => 600,
‘ varyByParam' => array(‘id')
)
);
}

COutputCache wird als Strategie verwendet, um beim Zwischenspeichern von Daten automatisch Schlüsselnamen zu generieren. Hier ist eine Liste derjenigen, die verwendet werden können:

varyByRoute: Wenn Sie diese Option auf „true“ setzen, wird der Routing-Teil einer bestimmten Anfrage als Teil einer separaten Kennung zum Generieren von Cache-Daten verwendet. Daher können Sie eine Kombination aus Request Controller und Acion verwenden, um zwischengespeicherte Inhalte zu unterscheiden.

varyBySession: Wenn Sie diese Option auf „true“ setzen, wird eine eindeutige Sitzungs-ID verwendet, um Inhalte im Cache zu unterscheiden. Die Sitzung jedes Benutzers ist unterschiedlich, kann jedoch zum Bereitstellen des Caches verwendet werden.

varyByParam: Wie bereits erwähnt, werden die Parameter im Eingabe-GET verwendet, um den Cache-Inhalt zu unterscheiden.

varyByExpression: Legen Sie einen PHP-Ausdruck für diese Option fest. Wir können das Ergebnis des entsprechenden Ausdrucks verwenden, um zwischengespeicherte Inhalte zu unterscheiden.

Beachten Sie außerdem, dass die Standard-Cache-ID von COutputCache Cache ist

4. Fragment-Cache

Fragment-Cache wird zum Zwischenspeichern eines Teils einer Seite verwendet. Wir können Fragment-Caching in Ansichtsskripten verwenden. Wir tun dies, indem wir die Methoden CController::beginCache() und CController::endCache() verwenden.

rrree

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein. Bitte achten Sie auf PHP Chinesische Website!

Verwandte Empfehlungen:

Über den Paginierungsstil von yii mit Bootstrap

Über die Diskontinuität der ID-Einstellungen in PHP, nachdem sie vorgenommen wurden inkrementierte Ursachenanalyse und Lösungen


Das obige ist der detaillierte Inhalt vonAnalyse der Gründe, warum Yii CFileCache den Wert nicht erhalten kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn