我正在使用Yii的sql缓存来显示一个表中的数据(见下文)
$results = Yii::app()->db->cache(1000)->createCommand($sql)->bindValues($params)->queryAll();
但问题是,在我删除一个值之后,这个查询仍然显示已经被删除的值。在我的delete语句中,我如何才能强制该高速缓存标记为脏,这样上面的语句就不会显示已经不存在的旧的已删除数据?
供您参考:http://www.yiiframework.com/doc/guide/1.1/en/caching.data
2条答案
按热度按时间ig9co6j11#
您可以在删除时新增相依性该高速缓存快取,而不是让快取失效。如果相依性变更,快取就会失效。例如,如果您使用自动递增的ID,您可以将表格的
max(id)
设定为相依性:0qx6xfy62#
如果您在redis中缓存查询结果,您可以打开Yii调试模式并找到redis键,它在redis中用于您的查询结果,然后删除redis键。
调试日志如下: