yii delete all query cache
memcached, php, yii
Solution
To delete all cache data, use `flush()` method:
Yii::app()->cache->flush();
To delete all expired cache data, use `gc()` method:
Yii::app()->cache->gc();
Another way:
//if you use CFileCache
$cache=new CFileCache();
$cache->flush();
//if you use CMemCache
$cache2=new CMemCache();
$cache2->flush();
To find all related methods, take a look at the Yii Official document:
- Caching
- CFileCache
- CMemCache
- CApcCache
Note that, the flush method, only flushes current running app cache values.
Problem
I am using Yii 1.14 on centos 5 with php 5.2.4. I am doing query caching like `Projects::model()->cache(timeout,dependancy)->findAll(array())`. Now I have many of these. is there a way to clear all the query cache of this application. i cannot seem to find any info of adding these cache queries to a group and then delete the group from the cache. The problem is i have many applications using memcache and i do not want to flush it every time before a update. I only want to clear all cache related to this application. Updated I would like to flush the app cache on the beginning and end of update. i have no file beginning with `cache` in that location ``` 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 ``` Looking at the logs the `Yii::app()->cache->flush` does following ``` <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 ``` That looks like it clears all the memcache?