Heim  >  Artikel  >  Backend-Entwicklung  >  Lösen Sie das Problem, dass Yii CFileCache den Wert nicht abrufen kann

Lösen Sie das Problem, dass Yii CFileCache den Wert nicht abrufen kann

*文
*文Original
2018-01-02 16:21:301676Durchsuche

Wie kann das Problem gelöst werden, dass Yii CFileCache den Wert nicht abrufen kann? In diesem Artikel wird hauptsächlich die Analyse der Gründe vorgestellt, warum Yii CFileCache den Wert nicht erhalten kann. Freunde, die ihn benötigen, können sich darauf beziehen. Ich hoffe, es hilft allen.

Ich habe

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

in der Konfigurationsdatei konfiguriert, es im Controller eingestellt

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

und dann die Datenbank geöffnet ‘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 mit der Zeit, nach einer gewissen Zeitspanne, vielleicht 10 Minuten, stellte ich fest, dass die Cache-Datei unter Laufzeit/Cache ist plötzlich verschwunden

Ich weiß nicht, warum ich dieses Problem gefunden habe, nachdem ich es lange verfolgt habe

Ich habe auch festgestellt, dass es Ordner im Cache-Verzeichnis gibt . Sie heißen 0a d6 63 3a.

Der Grund, warum die Cache-Dateien beim Warten online verschwunden sind?

Die Cache-Dateien in den Daten auf Laufwerk D Der Speicherplatz ist sehr groß

1. Die Pufferung von yii muss in der Hauptkonfiguration in .php erfolgen,

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

Nachdem die Konfiguration abgeschlossen ist, müssen Sie nur noch muss es im Controller konfigurieren...

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

2. Mehrere Caches konfigurieren

main.php-Konfiguration

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

Die Controller muss nur mit der entsprechenden Cacheid aufgerufen werden

Zum Beispiel: Yii::app ()->dbcache

3. Seiten-Caching bedeutet, die gesamte Seite statisch zu machen

Die main.php-Konfiguration ist immer noch dieselbe

Controller: Sie können die COutputCache-Klasse als Verhaltensfilter in unserem Controller-Klassengerät verwenden.

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.

…some HTML content…
<?php if($this—>beginCache($key))?>
…content to be cached…
<?php $this—>endCache(); ?>
…other HTML content…

Verwandte Empfehlungen:

Yii2 integriert Xunsou, um einen effizienten Abruf der chinesischen Wortsegmentierung zu erreichen

So filtert Yii fehlerhaften Code

So verwenden Sie Join und Join mit Abfragen für mehrere Tabellen in Yii2

Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass Yii CFileCache den Wert nicht abrufen 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