我正在使用Yii的CFileCache。
在我的配置文件中,我有:
'components'=>array(
'cache' => array('class' => 'system.caching.CFileCache'),
),
如果我想在网站上看到数据更改的效果,我会转到网站的管理部分并使用Yii::app()->cache->flush();
刷新缓存。
有没有办法从缓存中删除某个页面?
次要问题:
如果我不刷新缓存,新数据需要多长时间才能显示在网站上?
查看code setValue
方法中的默认过期值为1年,这似乎很长。
答案 0 :(得分:1)
是的,对于您的第一个问题,您可以删除某个值
要从缓存中删除缓存值,请调用delete();
调用flush()
时应该非常小心,因为它还会删除来自其他应用程序的缓存数据。
您可以设置过期,例如
Yii::app()->cache->set($id, $value, 30, new CFileCacheDependency('FileName'));
这将在30秒后到期
答案 1 :(得分:1)
您可以设置缓存的过期日期。
Yii::app()->cache->set('KEY','VALUE',90); //expires after 90 seconds
还建议使用gc
方法。作为Yii的官方定义:
gc()删除过期的缓存文件。
例如:
Yii::app()->cache->gc();
它只删除过期的缓存文件。