22 $cache['var1']=$value1; // 相当于 : $cache->set('var1',$value1);
23 $value2=$cache['var2']; // 相当于 : $value2=$cache->get('var2');
缓存依赖
除了过期设置,缓存数据还会因某些依赖条件发生改变而失效。如果我们缓存了某文件的内容,而该文件后来又被更
新了,我们应该让缓存中的拷贝失效,从文件中读取最新内容(而不是从缓存 ) 。
我们把一个依赖关系表现为一个 CCacheDependency 或它的子类的实例,调用 set() 的时候把依赖实例和要缓存的数
据一起传入。
// 缓存将在 30 秒后过期
// 也可能因依赖的文件有更新而更快失效
Yii::app()->cache->set($id, $value, 30, new CFileCacheDependency('FileName'));
如果我们现在调用 get() 从缓存中获取 $value ,缓存组件将检查依赖条件。如果有变,我们会得到 false 值 —— 数据
需要重新生成。
下面是可用的缓存依赖的简要说明:
CFileCacheDependency: 该依赖因文件的最近修改时间发生改变而改变。
CDirectoryCacheDependency: 该依赖因目录(或其子目录)下的任何文件发生改变而改变。
CDbCacheDependency: 该依赖因指定的 SQL 语句的查询结果发生改变而改变。
CGlobalStateCacheDependency: 该依赖因指定的全局状态值发生改变而改变。全局状态是应用中跨请求、跨 SESSION
的持久变量,它由 CApplication::setGlobalState() 来定义。
CChainedCacheDependency: 该依赖因依赖链中的任何一环发生改变而改变。
二、片段缓存 (Fragment Caching)
片段缓存指缓存网页某片段。例如,如果一个页面在表中显示每年的销售摘要,我们可以存储此表在缓存中,减少每
次请求需要重新产生的时间。
要使用片段缓存,在控制器视图脚本中调用 CController::beginCache() 和 CController::endCache() 。这两种方法开始和
结束包括的页面内容将被缓存。类似 data caching ,我们需要一个编号,识别被缓存的片段。
... 别的 HTML 内容 ...
[html]
24
我的更多文章:
(2014-01-06 12:50:41)
(2013-12-21 16:00:45)
(2013-12-20 15:11:51)
(2013-12-18 16:32:50)
(2013-11-20 16:21:02)
(2013-11-18 15:09:07)
(2013-11-14 16:13:57)
(2013-11-08 15:13:01)
分享:
喜欢
0
赠金笔
阅读┊ ┊ ┊ ┊ ┊打印┊
加载中,请稍候......
前一篇:C#.NET连接mysql方法
后一篇:mysql二进制日志文件恢复数据库
评论 重要提示:警惕虚假中奖信息
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册
昵 称:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
< 前一篇C#.NET连接mysql方法
后一篇 >mysql二进制日志文件恢复数据库