2016-08-05 2 views
1

Da ich neu im Cache-Mechanismus bin, ging ich durch die yii2 documentation. Wie in der Dokumentation, habe ich die untenstehende Konfiguration in db.php in der yii2-Basisanwendung hinzugefügt.Wie kann der yii2-Cache korrekt angewendet werden?

<?php 

return [ 
    'class' => 'yii\db\Connection', 
    'dsn' => 'mysql:host=localhost;dbname=db_new', 
    'username' => 'root', 
    'password' => 'root123', 
    'charset' => 'utf8', 
    'enableQueryCache' => true, 
    'queryCacheDuration' => 86400, 
    'enableSchemaCache' => true, 
    // Name of the cache component used to store schema information 
    'schemaCache' => 'cache', 
    // Duration of schema cache. 
    'schemaCacheDuration' => 86400, // 24H it is in seconds 

]; 

Ich habe auch die Cache-Komponente in web.php

'components' => [ 
    'cache' => [ 
     'class' => 'yii\caching\ApcCache' 
    ] 
] 

Und den Code unten hinzugefügt, während eine Aufzeichnung von Kunden-Tabelle abruft.

$db = Clients::getDb(); 
$client = $db->cache(function ($db)use($id) { 
    return Clients::find()->where(['id' => $id])->all(); 
}); 

Ich nehme an, meine Client-Tabelle ein Datensatz ex) $ id = 3 ist zwischengespeichert. Wenn ich also das nächste Mal versuche, denselben Datensatz aus der Client-Tabelle zu holen, wird er aus dem Cache nicht von Grund auf neu angelegt.

Meine Fragen sind

  1. Was ich oben ist tat dies richtig oder alles, was ich mehr konfigurieren müssen?
  2. Wo es im lokalen System gespeichert wird.

Vielen Dank im Voraus.

+0

Haben Sie Apc Cache in Ihrem Server installieren? – ThanhPV

+0

Sieht korrekt aus. Hast du irgendwelche Probleme damit? Vergessen Sie nicht die Cache-Invalidierung, wenn die Daten im Cache geändert werden können ... http://www.yiiframework.com/doc-2.0/guide-caching-data.html#cache-dependencies – oakymax

+0

@ThanhPV Nein, ich ' Ich habe nichts installiert, was mit dem Cache zu tun hat. –

Antwort

0

was Sie getan haben, ist richtig für Abfrage-Caching, in data caching here gefunden.

gibt es mehr Caching-Mechanismen zur Verfügung, wie fragment, page oder http caching

soweit ich weiß, der Ort, wo die Daten im Cache gespeichert sind auf der Komponente Caching abhängt. apc stores in memory

yii des Filecache speichert Dateien unter/runtime

gut zu wissen, dass Sie Caches mit yii der Konsolenbefehl spülen kann yii cache/flush-all

+0

Danke für Ihre Infos. Ich werde versuchen, es dich wissen zu lassen –

Verwandte Themen