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实现ping
Oct 09 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
php抓取页面与代码解析 推荐
Jul 23 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
PHP静态文件生成类实例
Nov 29 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
php将金额数字转化为中文大写
Jul 09 PHP
php类常量用法实例分析
Jul 09 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP Google的translate API代码
2008/12/10 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript CSS画图之基础篇
2009/07/29 Javascript
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
用Python写一个无界面的2048小游戏
2016/05/24 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
关于Django Models CharField 参数说明
2020/03/31 Python
python中常见错误及解决方法
2020/06/21 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
pytorch实现ResNet结构的实例代码
2021/05/17 Python