2016-10-13 3 views
0

、このクエリはまだ表示され、私はYiiのクエリでキャッシュをクリアする方法を

$results = Yii::app()->db->cache(1000)->createCommand($sql)->bindValues($params)->queryAll(); 

(下記参照)をテーブルからデータを表示するためのYiiのSQLキャッシュを利用しています。しかし、私は値を削除した後に問題があります削除された値。私の削除ステートメントでは、上記のステートメントは、もはやそこにある古い削除されたデータを表示しないように、どのようにキャッシュをダーティとマークするよう強制することができますか?あなたの参考のために

http://www.yiiframework.com/doc/guide/1.1/en/caching.data

答えて

1

代わりの削除中にキャッシュを無効にするには、キャッシュにdependencyを追加することができます。依存関係が変更されると、キャッシュは無効になります。例えばあなたが自動インクリメントIDを使用している場合は、依存するテーブルのmax(id)を設定することができます。

$results = Yii::app()->db->cache(
     1000, 
     new CDbDependancy("SELECT max(id) FROM table") 
    )->createCommand($sql)->bindValues($params)->queryAll(); 
0

Redisの中にあなたのキャッシュのクエリ結果は、あなたがYiiのデバッグモードを開き、Redisのキーを見つけることができれば、どのあなたのクエリ結果のためにredisで使用され、次にredisキーをdelします。次のように

デバッグログ:

2016年10月18日午前19時25分29秒[トレース] [system.caching.CRedisCache] "のYii:dbQueryタグ:cc6401a98f142e12f880dc4ab9447813811d1saasase0e" サービングキャッシュ から2016年10月18日19 :25:29 [トレース] [system.db.CDbCommand]クエリ結果がキャッシュに見つかりました

関連する問題