Yii 缓存之片段缓存
来源:互联网 发布:淘宝用户说 编辑:程序博客网 时间:2024/04/30 11:01
我们网站在进行访问的时候,有一些信息在相对一段时间之内是稳定,我们就把这样的信息放入缓存里边,这样用户每次来访问就是访问缓存的信息,对于大负载量的网站,可以明显提高网站的性能。
YII本身缓存类型:
缓存分类:
片段缓存 一个页面划分为几个区域,这几个区域相对比较独立,设计缓存的时候,可以为每个区域独立开发制作缓存
页面缓存 :对整个页面进行缓存
动态缓存
数据缓存
1. 在程序里边设置缓存
<form name="compareForm" action="compare.php" method="post" onsubmit="return compareGoods(this);"> <div class="clearfix goodsBox" style="border: medium none; padding: 11px 0pt 10px 5px;"> <!--片段缓存 实现--> <?php /*if($this->beginCache('缓存名称')){ * duration 设置过期时间 * varyByParam 缓存变化 * dependency 缓存依赖 */ if($this->beginCache('goods',array( 'duration'=>3600, 'varyByParam' => array('page'), 'dependency' =>array( 'class'=>'system.caching.dependencies.CDbCacheDependency', 'sql'=>'select sum(goods_price) from {{goods}}', ) ))){ ?> <?php foreach($goods_infos as $_v){ ?> <div class="goodsItem"> <a href="./index.php?r=goods/detail&id=<?php echo $_v->goods_id ?>" target="_blank"><img src="<?php echo $_v->goods_big_img; ?>" alt="<?php echo $_v->goods_name ?>" class="goodsimg"></a><br /> <p><a href="#" title="诺基亚N85"><?php echo $_v->goods_name ?></a></p> <font class="market_s">¥<?php echo $_v->goods_price ?>元</font><br /> <font class="shop_s">¥<?php echo $_v->goods_price ?>元</font><br /> <a href="#"><img src="<?php echo IMG_URL; ?>goumai.gif"></a> <a href="#"><img src="<?php echo IMG_URL; ?>shoucang.gif"></a> </div> <?php } ?> <?php $this -> endCache();} ?> </div> </form>
2. 在主配置文件main.php里边配置缓存组件cache(在这个地方决定使用哪种缓存) 我们的缓存是文件缓存,缓存的信息在目录runtime存放
设置缓存文件的过期时间
Duration ()
我们为缓存文件设置过期时间,在没有过期的时候系统都会使用缓存文件,如果已经过期,那么系统要重新生成缓存文件。
缓存变化:
我们的商品列表有实现片段缓存,那么在访问其他其它页码信息的时候也是访问这个缓存页面,因为,每页信息的路由都是一样的(goods/category),那么系统会误认为当前系统访问的页面是一个页面。当时页面的page参数是不一样的。
因此我们需要根据参数的变化生成不同的缓存文件。
根据页码不同,生成不同缓存文件:
缓存依赖:
我们的商品信息缓存可以自定义设置过期时间,根据具体需求业务类型决定,如果商品信息在没有过期之内已经变化了(数据库给更改的),这时缓存文件还没有过期,我们需要及时更新缓存文件(即使没有过期)以免误导客户,这种情况我们可以通过缓存依赖来实现。
缓存依赖条件:我们依赖的条件是总的商品价格,如果总价格发生变化,那么有可能是商品的信息有增加或减少的情况,或商品价格被修改。
Duration、varyByParam、dependency这个几个属性在哪?
System.web.widgets.CoutputCache.php
- Yii 缓存之片段缓存
- YII之片段缓存
- Yii 片段缓存
- YII 框架 第九天 缓存之片段缓存
- Yii: 片段缓存的使用
- yii 缓存之memcached
- yii 缓存之apc
- Yii之http缓存
- 关于yii缓存机制,片段缓存,页面缓存,数据缓存,动态缓存的设置过程
- yii2.0缓存篇之片段缓存
- 片段缓存
- YII 缓存
- Yii 缓存
- YII 框架 第九天(2)片段缓存的缓存依赖(实用)
- Yii Framework优化之缓存设置
- php之yii缓存学习笔记
- Yii之页面缓存的使用
- Yii2片段缓存详解
- poj1004
- 《我编程,我快乐》第五章 保持技术领先
- git stage
- Protecting the Flowers - POJ 3262 贪心
- Android Bundle类
- Yii 缓存之片段缓存
- dbca建库不识别ASM存储
- 软考UML中用例图中关系的考点
- mysql 获取当前日期及格式化
- 消失三法的区别(enabled/Destroy/active)
- 学校作业-Usaco DP水题
- 电话号码账号化
- UVA - 437 The Tower of Babylon
- c 面试题