如何手动更新缓存

网站有两个入口文件,一个前台a.php,一个后台b.php

如何在后台手动更新前台的某个缓存片段?用Yii::app()->cache->delete()无法删除

在前台的site控制器的delcache动作里加上删除缓存的代码:

比如Yii::app()->cache->delete();

在后台可以点击前台的链接实现。

index.php?r=site/delcache

因为前后台不是一个app,所以肯定不能在后台去用Yii::app()去删除前台的缓存。

难道不是知道Key就可以更新的吗?

照你说的方法也不行,难道Yii::app()->cache->delete()不能用来删除COutputCache生成的缓存文件吗?

用$this->beginCache(‘index’, array(‘duration’ => 3580))生成缓存,然后用Yii::app()->cache->delete(‘index’)删除,好像没有效果啊

key被内部加密过了,无法删除,只能清空

只要知道key就可以,没有不能的!找到生成key的规则就可以就可以构造一个key然后删除指定key的缓存。

你可以反复使用Yii::app()->cache->delete($key)的返回,进行调试,如果返回true,表示删除成功。

随便说一句,如果项目分frontend and backend,

ok,没有关系,可以把通过设置cache路径,指定到两个项目share的目录,就可以了, 当然如果不是filecache,就更好办了