キャッシュメカニズムが初めてのので、yii2 documentationを調べました。ドキュメントごとに、yii2基本アプリケーションのdb.phpに以下の設定を追加しました。yii2キャッシュを適用する正しい方法は何ですか?
<?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
];
も私はweb.phpに
'components' => [
'cache' => [
'class' => 'yii\caching\ApcCache'
]
]
をキャッシュコンポーネントを追加し、クライアントのテーブルからレコードを取得しているときに以下のコードを追加しました。
$db = Clients::getDb();
$client = $db->cache(function ($db)use($id) {
return Clients::find()->where(['id' => $id])->all();
});
私のクライアントテーブルは1つのレコードと仮定します。例)$ id = 3がキャッシュされます。次回は、クライアントテーブルから同じレコードを取得しようとすると、最初からキャッシュから取り出されません。
私の質問は、私は上記のやったこれが正しい何
- または私は より多くを構成するために必要なものがありますか?
- ローカルシステムに格納されている場所。
ありがとうございます。
でキャッシュをフラッシュすることができます知っていますか? – ThanhPV
正しく表示されます。あなたはそれに何か問題がありますか?キャッシュされたデータが変更される可能性がある場合のキャッシュ無効化について忘れないでください... http://www.yiiframework.com/doc-2.0/guide-caching-data.html#cache-dependencies – oakymax
@ThanhPVいいえ、キャッシュに関連するものは何もインストールされていません。 –