单缓存前端和后端

时间:2014-03-23 16:19:53

标签: php caching yii redis

我想在Yii中使用标记缓存。

但事实证明,前端使用其缓存作为后端。当我在后端更改模型时,不会清除缓存的前端。有什么解决方案吗?

抱歉我的英文。

2 个答案:

答案 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