关于yii的缓存的学习(学习自慕课网---与《YII框架》不得不说的的故事—高效篇)

1.类的延时加载和表的映射
第一张截图主要是实现了类的分别调用,不用再开头把所有的文件都加载了。这样放在if的语句里面,就能加载用到的类
类的选择加载
第二张图是实现了类的延时加载,主要是使用了spl_autoload_register 的函数只有当程序新建一个类的的时候,如果系统判断他不存在的话,就会通过那个函数去加载一次。yii也是使用的这个思想。
选择性加载类 提高效率 实现类的延迟加载 还能自动加载各种各样的类
第三第四张图,是yii使用类的延时加载的方式,在yii的入口文件index.php那里,加载yii.php文件,然后yii.php文件里面也是使用了spl_autoload_register 的函数。
在yii的入口文件的时候就加载那个类延时加载
yii框架的类的延迟性加载

第五张图,这图是yii映射表的使用方式,就是给指定的类附一个绝对路径,这样就能调用到她了,不过这个适用于经常使用的类。
类的映射表

2.组件的延时加载
第一张图是组件的加载流程,先通过$app实例化组件,然后再控制器中调用。而在yii中。只有当控制器里面需要组件的时候,通过这个方式来加载主键,然后yii这个方法会去调用__get()的方法来对指定的组件进行加载,通过这种方式进行组件的延时加载
这里写图片描述
只有当控制器里面需要组件的时候,通过这个方式来加载主键,然后yii这个方法会去调用__get()的方法来对指定的组件进行加载,通过这种方式进行组件的延时加载

3.缓存的增删改查
下面的那几个方法就能实现数据的增删改查了,
PS:如果是重复增加key值的话是不会有效果的
数据的增删改查升级版  如果是重复增加key值的话是不会有效果的

4.设置数据缓存的有效期和缓存的依赖性
设置缓存的时间的话,就直接在函数后面加上一个时间就好了
cache有效期的设置,针对set和get方法
依赖性分三种,一个是文件的依赖性,一个是表达式的依赖性,一个是DB的依赖性,相当于文件或者表达式或者db等东西被修改过后,这个缓存就不存在了,如果这时候还调用那个key值的缓存信息的话,就会返回false了。
文件依赖 如果依赖的这个文件内容被修改了之后 get的时候就会返回false
表达式依赖性
DB依赖

5.片段缓存
片段缓存实通过加视图层里面加上一个 $this->begincache(‘data’);这样的方式,然后将data的div里面的数据进行缓存。可以通过参数来设置缓存时间,缓存的依赖性和进行缓存的开关
片段缓存 在视图层进行缓存

片段缓存 会缓存15秒 15s内还是会使用缓存的数据

缓存依赖性

缓存开关

6.页面缓存
页面缓存的话,使用behavior 可以在调用index方法前执行 然后使用配置文件告诉浏览器要使用页面缓存。通话pagecache的东西来对页面进行缓存。

页面缓存的配置.png

页面缓存 使用behavior 可以在调用index方法前执行 然后使用配置文件告诉浏览器要使用页面缓存.png

缓存的头部和没缓存的头部的比较
缓存的头部和没缓存的头部的比较.png

7.http缓存
1) 304 表示没修改过 就不会重新传数据 就直接显示缓存的数据 通过last modified 和etag这两个标签来判断是否更改过。
304 表示没修改过 就不会重新传数据 就直接显示缓存的数据.png
调用的是httpcache的方法
存放到响应的数据的头部.png

2)
通过last-modified和etag这两个字段 来判断是否需要增加缓存 last-modified表示最后一次修改 etag是表示数据是否有修改.png
通过last-modified和etag这两个字段 来判断是否需要增加缓存 last-modified表示最后一次修改 etag是表示数据是否有修改.png
先判断lastmodified 再判断etag 如果两个都不同的话就会重新调用了
先判断lastmodified 再判断etag 如果两个都不同的话就会重新调用了

对于last modified和etag在http 头部协议里面的显示信息
etag
last modified 在头部里面显示的时间的 这是格林尼治时间.png

3)在代码里面的实现
关于lastmodified的说明 这个参数是通过时间戳.png

使用etag和last modified的代码如下。
使用etag和last modified的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值