温馨提醒

亲爱的游客,你的浏览器太旧啦.都啥年代了.为了你的安全,为了你的体验,为更好的浏览本页, 赶紧更新一把吧.....本博客不支持ie8以下浏览器,如果你使用的是ie浏览器,请您更新到ie8或以上版本.

推荐使用谷歌浏览器(chrome)或火狐浏览器(Firefox),点击下方按键进行安装

码农部落

  ——好记性,不如烂博客!

yii教程(22)片段缓存(变化和依赖)

【缓存】

什么是缓存:我们从数据库读取出来的信息暂时放到一个更快的介质上存储,下次从这个更快的介质上读取信息。

介质:文件、数据库(优化好的数据)、内存

我们网站在进行访问的时候,有一些信息在相对一段时间之内是稳定,我们就把这样的信息放入缓存里边,这样用户每次来访问就是访问缓存的信息,对于大负载量的网站,可以明显提高网站的性能。

缓存类型:

yii22-1

为了缓存学习效果更好,我们制作两个页面实现缓存

台前的商品列表页面

台前的商品详细页面

缓存分类:

片段缓存

页面缓存

动态缓存

数据缓存

【商品列表和详细页面制作】

【片段缓存】

yii22-2

 

 

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

yii22-3

 

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

yii22-4

 

 

使用缓存步骤:

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

yii22-5

yii22-6

 

设置缓存文件的过期时间

Duration   ()

yii22-7

 

 

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

 

缓存变化:

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

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

yii22-8 yii22-9

 

 

 

 

缓存依赖:

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

 

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

yii22-10 yii22-11

 

 

 

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

 

片段缓存步骤:

  1. main.php里边设置cache组件
  2. 实现片段缓存(beginCache  endCache)
  3. 缓存变化
  4. 缓存依赖

 

DurationvaryByParamdependency这个几个属性在哪?

System.web.widgets.CoutputCache.php

 

码农部落
声明:本博客文章多数为博主笔记,绝无版权问题,欢迎转载(能注明出处更好),有任何问题,请在下方评论框留言.


发表评论

电子邮件地址不会被公开。 必填项已用*标注