但我是缓存技术的新手。阅读docs(及以下)和一些examples后,我仍然不知道如何使用它。
我需要为我们开发的CMS / CRM网站应用缓存。应用程序/网站是网上商店和客户订单处理的混合,如何优化?哪些缓存组件最适合使用?
典型用户请求(缓存的主要问题)是assortment/goods grid page能够按类别,品牌,制造商,文章等过滤商品。
我的概念是,无法预测每个用户关于他将对给定数据施加何种选项/过滤器的行为。那么如何应用缓存呢?请纠正我,如果不是这样的话。用户可能已登录或未登录。
我在 main.php 中设置了组件中的cache
设置:
'components'=>array(
'cache'=>array(
'class'=>'system.caching.COutputCache',
'connectionID'=>'db',
'autoCreateCacheTable'=>false,
'cacheTableName'=>'cache',
),
...
我已将缓存设置添加到filters()
的{{1}}中:
AssortmentController
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
'postOnly + delete', // we only allow deletion via POST request
array(
'COutputCache',
'duration'=>1000,
'varyByParam'=>array('id'),
),
);
}
和beginCache
,如果是这样的话? 但是仍然可能有更多的GET参数(除了endCache
),例如分类[title] ,分类[文章] ,花色[groupCategory] ?
我也应该添加它们吗?
id
任何更正,文档链接,指南都是值得注意的。
答案 0 :(得分:1)
要为特定视图创建缓存,请添加以下内容:' COutputCache + view',(这意味着只会'查看'操作将被缓存)
您可以通过定义cacheId并在beginCache $ this-> beginCache(' name',array(' cacheID' =)中引用它来使用多个缓存>' filecache'))。
此处引用COutputCache(http://www.yiiframework.com/doc/api/1.1/COutputCache)。
只有varyByParams中的params才会被考虑用于缓存键。 / products / view / 1 / some / param AND / products / view / 1 / another / param将从同一缓存中提供
如果您有其他参数将添加/成为缓存的一部分,您需要添加它们。