2014-07-02 46 views
0

我正在使用Yii的CFileCache。从CFileCache中删除一页

在我的配置文件我有:

'components'=>array(
    'cache' => array('class' => 'system.caching.CFileCache'), 
), 

如果我想看到的网站,我去现场的管理部分和冲洗使用Yii::app()->cache->flush();缓存上的数据变化的影响。

有没有办法来删除缓存中的某个页面

第二个问题:
如果我没有刷新缓存,需要多长时间才能在网站上显示新数据?

查看codesetValue方法中的默认过期值为1年,这似乎很糟糕。

回答

1

是的,你的第一个问题,你可以删除某个值

要删除缓存缓存值,调用delete(); 调用flush()时,你应该非常小心,因为它还会删除与其他高速缓存数据应用。

您可以设置过期,例如

Yii::app()->cache->set($id, $value, 30, new CFileCacheDependency('FileName')); 

,这将在30秒内

Reference

+0

事实证明,这些页面并未被CFileCache缓存,而是被COutputCache缓存。但由于CFileCache是​​应用程序配置文件中唯一的缓存组件,我不知道COutputCache也被使用。 – Nelu

1

到期可以设置到期日期缓存。

Yii::app()->cache->set('KEY','VALUE',90); //expires after 90 seconds 

也建议使用gc方法。正如Yii的官方定义:

gc()删除过期的缓存文件。

例如:

Yii::app()->cache->gc(); 

它仅删除过期的缓存文件。