我在php 5.2.4的centos 5上使用Yii 1.14.我正在做查询缓存之类的Projects::model()->cache(timeout,dependancy)->findAll(array())
.现在我有很多这些.有没有办法清除此应用程序的所有查询缓存.我似乎无法找到任何将这些缓存查询添加到组,然后从缓存中删除该组的信息.问题是我有很多使用memcache的应用程序,我不希望每次更新前都刷新它.我只想清除与此应用程序相关的所有缓存.
更新
我想在更新的开始和结束时刷新应用缓存.我没有cache
在该位置开头的文件
ll paradox/protected/runtime/ total 164 -rw-r--r-- 1 apache apache 155571 Jun 3 15:53 application.log drwxr-xr-x 2 apache apache 4096 Jun 4 11:53 gii-1.1.12 drwxr-xr-x 2 apache apache 4096 Jun 4 11:53 gii-1.1.14
查看日志,Yii::app()->cache->flush
确实如下
<28 new auto-negotiating client connection 28: Client using the ascii protocol <28 get ns9e5np1ss92i7mqkjues577o1 >28 sending key ns9e5np1ss92i7mqkjues577o1 >28 END <39 version >39 VERSION 1.4.5 <39 flush_all >39 OK
看起来它清除了所有内存缓存?
要删除所有缓存数据,请使用以下flush()
方法:
Yii::app()->cache->flush();
要删除所有过期的缓存数据,请使用以下gc()
方法:
Yii::app()->cache->gc();
其他方式:
//if you use CFileCache $cache=new CFileCache(); $cache->flush(); //if you use CMemCache $cache2=new CMemCache(); $cache2->flush();
要查找所有相关方法,请查看Yii官方文档:
高速缓存
CFileCache
CMemCache
CApcCache
请注意,flush方法仅刷新当前运行的应用程序缓存值.