Yii CFileCache 获取不到值的原因分析


Posted in PHP onFebruary 08, 2017

我在配置文件里面配置了

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),

在控制器里面设置了

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),

然后开启了数据库 ‘schemaCachingDuration'=>3600,

初次使用是有缓存文件的 而且发现 确实加快不少访问速度

但时间一长 在某个时间段 也许是10分钟后 我就发现 runtime/cache 下面的缓存文件突然就没了

不清楚是什么原因 跟踪了好长时间才发现这个问题

另外还发现缓存目录里面还有 文件夹 什么0a d6 63 3a命名的 不知道这是起什么作用的

在线等缓存文件突然没了的原因?

缓存文件在D盘 数据空间是很大的

一、yii的缓冲需要在main.php里面配置,

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)

配置完成以后只需在控制器里面….

Yii::app ()->cache->set($key,$value,$expire);
Yii::app ()->cache->get($key);

二、配置多种缓存

main.php 的配置

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)

控制器只需用相应的cacheid调用就好

如:Yii::app ()->dbcache

三、页面缓冲也就是把整个页面静态化

main.php配置还是一样

控制器:可以使用COutputCache类作为一个我们控制器类中的一个行为过滤器。

public function filters() {
return array (
array (
‘COutputCache',
‘duration' => 600,
‘ varyByParam' => array(‘id')
)
);
}

COutputCache来缓存数据时,来作为自动生成key名字的策略。下面是可以使用的一个列表:

varyByRoute:通过将该选项设置为true,具体请求的路由部分将会作为独立标识符的一部分用于生成缓存数据。所以,你可以使用请求controller和acion的组合来区别缓存内容。

varyBySession:通过设置该选项为true,将使用唯一的session id来区分缓存中的内容。每个用户的session都是不同的,但是可以用来为缓存服务。

varyByParam:如前面所说,这里是用输入的GET中的参数来区分缓存内容。

varyByExpression:给该选项设置PHP表达式,我们可以使用相应表达式的结果来区分缓存的内容。

还有要注意的是 COutputCache默认的cacheid是cache

四、片段缓存

片段缓存用来缓存一个页面的一部分。我们可以在view脚本中使用片段缓存。我们通过使用CController::beginCache()和CController::endCache()方法来实现。

…some HTML content…
<?php if($this—>beginCache($key))?>
…content to be cached…
<?php $this—>endCache(); ?>
…other HTML content…

以上所述是小编给大家介绍的Yii CFileCache 获取不到值的原因分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
php+oracle 分页类
Oct 09 PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php 输出双引号&quot;与单引号'的方法
May 09 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
PHP文件上传原理简单分析
May 29 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 PHP
php实现连接access数据库并转txt写入的方法
Feb 08 #PHP
php unicode编码和字符串互转的方法
Aug 12 #PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 #PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 #PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 #PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 #PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 #PHP
You might like
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python循环语句中else的用法总结
2016/09/11 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
python列表,字典,元组简单用法示例
2019/07/11 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
运动会跳远加油稿
2014/02/20 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
三年级学生评语大全
2014/12/26 职场文书
趣味运动会简讯
2015/07/20 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书