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

我在配置文件里面配置了

‘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 获取不到值的原因分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-09-16 18:48:58

Yii CFileCache 获取不到值的原因分析的相关文章

jquery获取select选中值的方法分析_jquery

本文实例讲述了jquery获取select选中值的方法.分享给大家供大家参考,具体如下: 误区: 以前一直以为jquery获取select中option被选中的文本值,是这样写的: 复制代码 代码如下: $("#s").text(); //获取所有option的文本值 实际上应该这样: 复制代码 代码如下: $("#s option:selected").text(); //获取选中的option的文本值 获取select中option的被选中的value值: $(

document.getElementById获取不到值的原因

 HTML DOM 定义了多种查找元素的方法,除了 getElementById() 之外,还有 getElementsByName() 和 getElementsByTagName(). 不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById(). 在操作文档的一个特定的元素时,最好给该元素一个 id 属性,为它指定一个(在文档中)唯一的名称,然后就可以用该 ID 查找想要的元素. 需求,就可以想到利用GET传值的方式,但常规GET方式需要把链接写入标签的a

JS使用getComputedStyle()方法获取CSS属性值_javascript技巧

在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属性中的值(style="-"),而无法获取定义在<style type="text/css">里面的属性. 复制代码 代码如下: <span style="font-family:Arial;font-size:14px;">

trigger update-trigger 获取不到值,为何

问题描述 trigger 获取不到值,为何 应需求,需要在程序运行后直接更改DB的数据,因系统不是我们能够控制,所以只有通过TRIGGER来写,可是这几天一直运行不成功,大家看看以下逻辑是否不对 有两表A,B,字段如下,要求如果表B中E='RTN'时,将表A的O更新为'FD' TABLE A 字段 M,W,O 主键为M TABLE B 字段 M,W,E,无主键 程序运行时做了两步动作( 其中A,B表中的W字段一定相差1 ): INSERT INTO B(M,W,E)VALUES('056',2,

网站谷歌PR值下降原因全面系统分析方案

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 从单一到综合谷歌悄然完成了PR值新标准的转换,这标志着谷歌对网站PR值的评定已经趋于成熟.但是作为网站的站长,我们应该明确的知道PR值对于网站的意义,万能导航网SEO专家们说过"谷歌对PR值的评定并不仅仅是一张好看却毫无用处的名片,谷歌对PR值的评定也不会仅仅停留在网站的外部链接上,从单一到综合是任何事物发展的道路,PR值的评定标准

Python获取文件ssdeep值的方法_python

本文实例讲述了Python获取文件ssdeep值的方法,分享给大家供大家参考.具体方法如下: 首先,得到ssdeep值,需要先import ssdeep 在ubuntu上安装pyssdeep时 一直出错  后来发现apt-cache search "ssdeep"时把几个全apt-get install 上,但问题依旧. 后来下载到pyssdeep的源文件 ,tar zxvf pyssdeep.tar.zip 然后 apt-get install python-dev 然后 pytho

yii实现model添加默认值的方法(2种方法)_php实例

本文实例讲述了yii实现model添加默认值的方法.分享给大家供大家参考,具体如下: yii model 继承自CActiveRecord 有些字段可能不会出现在表单中,而需要在程序中加入.如订单编号,时间戳,操作的user_id等等. 以下二种方法: 1.在rules()方法中设定: public function rules() { // NOTE: you should only define rules for those attributes that // will receive

在Python中用get()方法获取字典键值的教程

  这篇文章主要介绍了在Python中用get()方法获取字典键值的教程,是Python入门中的基础知识,需要的朋友可以参考下 get()方法返回给定键的值.如果键不可用,则返回默认值None. 语法 以下是get()方法的语法: ? 1 dict.get(key, default=None) 参数 key -- 这是要搜索在字典中的键. default -- 这是要返回键不存在的的情况下默认值. 返回值 该方法返回一个给定键的值.如果键不可用,则返回默认值为None. 例子 下面的例子显示了g

浅析C#绑定变量和匿名块获取获取序列当前值

我们将谈到C#绑定变量和匿名块获取获取序列当前值,首先需要在Oracle中进行一系列的操作,接下来是C#绑定变量的具体操作. 1.在Oracle中建立表.序列.触发器: SQL> create table TESTTAB ( ID NUMBER, NAME VARCHAR2(10) ); 表被创建 SQL> create sequence TESTTABSEQ minvalue 1 maxvalue 999999999999999999999999999 start with 1 increm