三大缓存技术

三大缓存技术

  • 三大缓存技术
    • 浏览器缓存
    • 程序缓存
    • ob缓冲

1.浏览器缓存、程序缓存、ob缓存

1. 浏览器缓存

浏览器接收服务器返回的数据,每达到一定的量,就显示到页面上,如果最后一次没达到量,也显示到页面

2. 程序缓存:

每次发送PHP请求,php每一次的输出都会先存到程序缓存中,当整个PHP程序执行结束,在返回给apache,最后返回到浏览器

程序缓存是语言底层实现的,人为不可操控

三大缓存技术_第1张图片

3. ob缓冲:

每次返送PHP请求,如果开启ob缓冲,php每一次的输出都会先存到ob缓冲中,当以下情况发生时,数据会从ob缓冲送到程序缓存

  1. 整个PHP程序执行结束

  2. ob缓冲空间被占满

  3. 开发者手动操作

三大缓存技术_第2张图片

2.常用ob缓冲函数

ob_start()  开启ob缓冲
  ob_get_clean()    获取然后清除ob缓冲区内容
  ob_get_contents() 获取ob缓冲内容
  ob_get_flush()    获取并送出ob缓冲内容,送到程序缓存后,清空ob缓冲空间
ob_clean()  清空ob缓冲
  ob_end_clean()    清空并关闭ob缓冲
  ob_end_flush()    送出并关闭ob缓冲

3.使用ob缓存实现真静态

真静态:将动态页面的输出内容,保存到静态html页面。

使用ob缓存,可以获取页面的输出内容,

使用file_put_contents函数将字符串写入文件。

比如以前台首页为例:修改Home分组Index控制器index方法
三大缓存技术_第3张图片

生成的静态文件
三大缓存技术_第4张图片

静态文件访问路径:http://www.tpshop.com/Static/index.html

如果数据库的数据发生变化,需要重新生成静态页面。

操作思路:方法一:在后台设置删除静态文件功能, 可以实时更新,但是需要手动删除,(需要手动删除静态文件,所以其实也不是严格实时)

方法二:设置真静态文件生命周期自动更新静态文件,但是有延迟

如果要严格遵循实时更新,要使用伪静态

4.真静态缓存生命周期

真静态文件的生命周期(有效期)

当前时间 - 文件生成时间 < 生命周期

通过fliemtime函数获取文件上次被写入的时间

修改Home分组Index控制器index方法,使用静态化的html页面之前,先进行有效期判断。

三大缓存技术_第5张图片

你可能感兴趣的:(PHP)