PHP 静态缓存
今天来说说PHP页面的静态缓存。
根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢。此时如果把这个页面缓存起来,客户端请求这个缓存页面速度就很快,都不用查询数据库的。并不是每个页面都适合做缓存,页面要保证短时间内请求次数很大,同时短时间内数据变化不大。我们只要给缓存一个过期时间就可以达到更换数据的目的。
1. 建立一个目录专门存放缓存文件
2. 在index.php
<?php
/**
* PHP文件缓存示例
* @Date: 2017-12-07 16:06:17
* @Last Modified time: 2017-12-07 16:27:26
*/ $file_name = './cache/test.php'; // 缓存文件
$expire_time = 10; // 过期时间(秒) if(!file_exists($file_name) || (filemtime($file_name)+$expire_time)<time()) // 文件修改时间+过期时间 如果小于当前时间,则去请求新的数据
{
//缓存页面代码
ob_start();
//用来获取页面缓存中的内容
$content = ob_get_contents(); echo '我是正常的内容,这里可以写页面,请求数据库的信息'; //将获取到的内容存放到缓存文件
file_put_contents($file_name,$content); //清掉内存缓存
ob_end_flush(); echo '我是缓存之外的内容'; //测试是否调用了缓存文件,缓存文件不输出这句话 }
else
{
echo '你现在看到的是缓存文件<br />';
include($file_name); //如果存在,调用缓存文件
}
10s过后就会请求新的数据了
以上就是PHP页面静态缓存的全部内容了
PHP 静态缓存的更多相关文章
- php静态缓存简单制作
制作缓存的目的是为了让我们的页面运行更加快速,减少读取数据库内容的次数,给用户更好的体验,为此我们可以使自己的程序做一下缓存,并且设置一个缓存过期的时间,来保证与数据库的一致,当然并不是所有的程序都适 ...
- ThinkPHP 3.2.3 数据缓存与静态缓存
ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud ...
- APP 接口开发及读取静态缓存
<?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...
- PHP 开发 APP 接口 学习笔记与总结 - 静态缓存
存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $ ...
- ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...
- thinkphp的静态缓存,数据缓存,快速缓存,查询缓存
// 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON' => true, // 开启静态缓存 'HTM ...
- Thinkphp路由配置和静态缓存规则【原创】
ThinkPHP框架对URL有一定的规范,所以如果你希望定制你的URL格式的话,就需要好好了解下内置的路由功能了,它能让你的URL变得更简洁和有文化. 首先我们在Common/config.php设置 ...
- Thinkphp 缓存和静态缓存局部缓存设置
1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...
- thinkphp3.2局部不缓存的静态缓存
在thinkphp中,对于访问量大的网站可以用静态缓存来越过数据库瓶颈来提高访问速度,但有时候并不是整个页面都要缓存的,如登录的用户名部分,那么如何实现局部不缓存呢? 其实有多种方法,但对于Think ...
随机推荐
- left join 条件位置问题
表一:
- 在VM12中安装 RedHat RHEL7.2 系统的详细步骤
一.开始安装 1)新建虚拟机 RHEL7.2 2)成功引导系统--开机出现此画面 Install Red Hat EnterpriseLinux 7.2 安装RHLE7.2 操作系统 Test th ...
- Lua 5.3 迭代器的简单示例
Lua 5.3 迭代器的简单示例 创建"closure"模式的"iterator" function allowrds() local line = io.re ...
- hihocoder 1015题
代码 #include <iostream> #include <string> #include <typeinfo> #include <vector&g ...
- 暑假练习赛 007 B - Weird Cryptography
Weird Cryptography Description standard input/outputStatements Khaled was sitting in the garden unde ...
- Android 开发笔记___RelativeLayout
xml文件实现 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andr ...
- 数组删除操作 splice
原理通过设置 函数的 length 属性 var a = [1, 2, 3, 4]; a.length = 3 ; 结果 : a = [1,2,3]
- Problem B: 大整数的加法运算
Problem B: 大整数的加法运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 112 Solved: 57[Submit][Status][W ...
- 让普通 Java 类自动感知 Activity Lifecycle
背景 在 Android 开发中,我们都很熟悉 Activity 的 Lifecycle,并且会在特定的 Lifecycle 下执行特定的操作.当然,我们清楚 Lifecycle 本身是带有 Andr ...
- Struts2开发文档
struts2配置 struts2核心配置文件约束 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts ...