Yii框架之缓存介绍、商品列表和详情页制作、片段缓存(缓存变化和依赖)、页面缓存、数据缓存、动态缓存

本文介绍了四种缓存策略:片段缓存、页面缓存、数据缓存及动态缓存,并探讨了缓存的存储介质和使用方法。重点讲解了如何设置缓存过期时间、根据参数变化生成不同缓存文件以及通过缓存依赖确保缓存信息的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存分类:

片段缓存

页面缓存

动态缓存

数据缓存

商品列表和详细页面制作

片段缓存


进行商品列表的独立区域缓存,片段缓存

我们的缓存是文件缓存,缓存的信息在目录runtime存放

使用缓存步骤:

1. 在程序里边设置缓存

2. 在主配置文件main.php里边配置缓存组件cache(在这个地方决定使用哪种缓存)


设置缓存文件的过期时间

Duration   ()

我们为缓存文件设置过期时间,在没有过期的时候系统都会使用缓存文件,如果已经过期,那么系统要重新生成缓存文件。

 

缓存变化

我们的商品列表有实现片段缓存,那么在访问其他其它页码信息的时候也是访问这个缓存页面,因为,每页信息的路由都是一样的(goods/category),那么系统会误认为当前系统访问的页面是一个页面。当时页面的page参数是不一样的。

因此我们需要根据参数的变化生成不同的缓存文件。


缓存依赖

我们的商品信息缓存可以自定义设置过期时间,根据具体需求业务类型决定,如果商品信息在没有过期之内已经变化了(数据库给更改的),这时缓存文件还没有过期,我们需要及时更新缓存文件(即使没有过期)以免误导客户,这种情况我们可以通过缓存依赖来实现。

 

缓存依赖条件:我们依赖的条件是总的商品价格,如果总价格发生变化,那么有可能是商品的信息有增加或减少的情况,或商品价格被修改。


如果一个商品价格增加5元,另一个商品价格减少5元,这样是不会更新缓存的,因为商品总价格没有发生变化。

 

片段缓存步骤:

1. main.php里边设置cache组件

2. 实现片段缓存(beginCache  endCache)

3. 缓存变化

4. 缓存依赖

 

DurationvaryByParamdependency这个几个属性在哪?

System.web.widgets.CoutputCache.php

 

页面缓存

1. 是否可以通过“页面缓存”实现

答:这样是不可以,因为布局文件还没有被缓存

 

2. 我们是否可以再布局进行页面缓存

答:理论上不可以,视图先加载,布局后加载

视图:0.05135800 1369315232  时间小,先加载

布局:0.05197600 1369315232  时间打,后加载

用户访问控制实现页面缓存

Filters

accessControl

accessRules

数据缓存

具体就是可以缓存变量信息

变量 缓存的使用

 

设置: Yii::app()->cache->set(名字,值,过期时间);

使用:Yii::app()->cache->get(名字);

删除:Yii::app()->cache->delete(名字);

清空:Yii::app()->cache->flush();

数据缓存应用(重要):

动态缓存

 Smarty 动态缓存  insert

 我们可以缓存整个页面,但是只有一个小的区域,会根据不同的条件显示不同的信息,这个小的区域我们需要设置动态缓存。


$this -> beginCache()

中间有区域需要动态缓存

回调函数:就是控制器里边的普通方法

$this -> renderDynamic(回调函数);

$this -> benCache()


这个show_name()控制器要放入普通控制器父类里边Controller,这样代码可以重复利用。

总结:

缓存

1. main.php配置缓存组件cache

2. 缓存类型:片段缓存、页面缓存、数据缓存、动态缓存

3. 缓存存介质:文件、数据库、内存

 

片段缓存:beginCache()     

页面缓存:filters过滤器实现

 

4. 具体变量缓存

Yii::app()->cache->set(名字,值,过期时间)

     Get(名字)

     Delete(名字)

      Flush()清空缓存,(数据、片段、页面都会清空)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值