2016-10-13 4 views
0

이 쿼리 여전히 표시 나는YII 쿼리 캐시를 삭제하는 방법

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

(아래 참조) 테이블에서 데이터를 표시 YII의 SQL 캐싱을 사용하고하지만이 값을 삭제 한 후 문제는, 삭제 된 값 내 delete 문에서 캐시를 더티로 표시하도록 강제로 수행하면 위의 명령문이 더 이상 존재하지 않는 삭제 된 데이터를 표시하지 않도록 할 수 있습니까? 참고로

: 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

레디 스에서 당신 캐시 쿼리 결과, 당신은 YII 디버그 모드를 열고 레디 스 키를 찾을 수 있다면, 어떤 쿼리 결과에 redis로 사용 된 다음 redis 키를 누릅니다.

2016년 10월 18일 19시 25분 29초 [추적] [system.caching.CRedisCache] "YII : dbquery : cc6401a98f142e12f880dc4ab9447813811d1saasase0e"를 봉사 : 캐시 에서 2016년 10월 18일 (19) 다음과 같은

디버그 로그 : 25 : 29 [trace] [system.db.CDbCommand] 캐시에서 쿼리 결과가 검색되었습니다.

관련 문제