从CFileCache中删除一个页面

时间:2014-07-02 21:43:36

标签: caching yii yii-components

我正在使用Yii的CFileCache。

在我的配置文件中,我有:

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

如果我想在网站上看到数据更改的效果,我会转到网站的管理部分并使用Yii::app()->cache->flush();刷新缓存。

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

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

查看code setValue方法中的默认过期值为1年,这似乎很长。

2 个答案:

答案 0 :(得分:1)

是的,对于您的第一个问题,您可以删除某个值

要从缓存中删除缓存值,请调用delete(); 调用flush()时应该非常小心,因为它还会删除来自其他应用程序的缓存数据。

您可以设置过期,例如

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

这将在30秒后到期

Reference

答案 1 :(得分:1)

您可以设置缓存的过期日期。

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

还建议使用gc方法。作为Yii的官方定义:

  

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

例如:

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

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