yii2.0实现页面缓存 [ 2.0 版本 ]
public function actionIndex(){
return $this->render('index');
}
public function behaviors()
{
return [
'pageCache' => [
'class' => 'yii\filters\PageCache',
'only' => ['index'],
'duration' => 60,
'dependency' => [
'class' => 'yii\caching\DbDependency',
'sql' => 'SELECT COUNT(*) FROM c_ProductList',
],
'variations' => [
\Yii::$app->language,
]
],
];
}
以上是我控制器的放法及缓存设置.
问题:
1.我不知道缓存成功了没有,因为没有报错.
2.如果缓存成功,请问缓存的文件保存在哪里.
3.缓存的文件可以自定义吗?
共 3 个回答
-
可以去web/assets这个目录下看看,都是缓存文件,可以删掉的。
还有其他缓存形式,例如mongo、memcache、redis等,有专门的工具去查看的。
可以自定义的。共 4 条回复 -
1、看是否有缓存:
方法一:看缓存文件
先关闭页面缓存,删除runtime/cache下的所有缓存,刷新页面,观察生成了几个缓存文件。
然后打开页面缓存,再次刷新页面,观察是否有更多的缓存文件生成,如果有,缓存成功。
方法二:看调试信息
如果你有打开debug面板,那么在你访问的页面缓存生效期间,不管刷新几次页面,下方的debug面板上的参数(页面加载时间/time,数据库查询时间/DB time,等)是不会变化的,因为这个值是被缓存页面的信息。
如果没有缓存,这些参数是会有波动。2、如果缓存成功,文件会是runtime/cache目录下
3、缓存文件不能自定义,这个是系统底层做的事,不用你干预,你只管用就行了。
你能定义的是缓存的变量名,如果你只需缓存部分数据
写缓存$cache->set($key, $data)
读缓存$data = $cache->get($key);
至于缓存文件具体在哪个位置,与你无关。
比如你存¥100到支付宝,不用关心这¥100具体在放哪了,只要账号密码对了,在哪都能买¥100的东西。共 6 条回复@wang321 建议仔细学习下文档:http://www.yiichina.com/doc/guide/2.0/caching-overview 我没有研究过这个东西,所有的经验都是基于默认配置来的,配置的问题经验不足.
qq3737002 觉得很赞 -
dashixiong 回答于 2016-12-30 09:08 举报
建议开启debug,看下页面的运行时间,如果缓存成功,时间会缩短5倍以上。
农民的孩子 成都
最后登录:2019-09-23
在线时长:15小时8分
- 粉丝6
- 金钱9320
- 威望0
- 积分9470