我想在Yii中使用标记缓存。
但事实证明,前端使用其缓存作为后端。当我在后端更改模型时,不会清除缓存的前端。有什么解决方案吗?
抱歉我的英文。
答案 0 :(得分:1)
在各自的配置文件中为前端和后端设置不同的缓存前缀。
我仍在使用1.1.x分支,但对于2.x分支应该是相同的。
前端配置文件:
'cache' => array(
'class' => 'system.caching.' . (!MW_DEBUG ? 'CFileCache' : 'CDummyCache'),
'keyPrefix' => md5('frontend.' . MW_VERSION . Yii::getPathOfAlias('frontend')),
),
后端配置文件:
'cache' => array(
'class' => 'system.caching.' . (!MW_DEBUG ? 'CFileCache' : 'CDummyCache'),
'keyPrefix' => md5('backend.' . MW_VERSION . Yii::getPathOfAlias('backend')),
),
答案 1 :(得分:0)
就我而言,在DI的缓存服务运行时,对于FileCache,设置另一个cachePath也可以正常工作。
//in backend
$cache = \Yii::$app->cache;
if ($cache instanceof FileCache) {
$cache->cachePath = \Yii::getAlias('@frontend/runtime/cache');
$cache->set('my_cache_prefix', $myData);
}
//This way I have overridden expired cache in frontend