PHP基于文件存储实现缓存的方法


Posted in PHP onJuly 20, 2015

本文实例讲述了PHP基于文件存储实现缓存的方法。分享给大家供大家参考。具体如下:

在一些数据库数据记录较大,但是服务器有限的时候,可能一条MySQL查询就会好几百毫秒,一个简单的页面一般也有十几条查询,这个时候也个页面加载下来基本要好几秒了,如果并发量高的话服务器基本就瘫痪了,造成一个页面很久也加载不下来,这个时候我们可以使用文件缓存来缓解下MySQL的压力,下面给个使用例子。

<?php
//页面业务逻辑处理,获得结果
$objPage = new Page_IndexModel($arrParams);
//一系列的业务逻辑放在了objPage中,调用process方法获得结果集
$arrResult = $objPage->process();
//获得结果后smarty赋值
$smarty->assign($arrResult);
//输出模板
$smarty->display();
?>

现在我们用文件缓存来略过Page业务处理这一步

<?php
$cachFile = './index.php';
//缓存文件存在且时间不超过一小时,则直接使用缓存的结果集,不在进行任何的MySQL查询了
if(file_exists($cacheFile) && time()-filemtime($cachFile) < 3600) {
  //使用缓存中的结果
  $arrResult = include($cachFile);
} else {
  $objPage = new Page_IndexModel($arrParams);
  $arrResult = $objPage->process();
  $strContent = "<?php \n return ".var_export($arrResult, true)."\n;";
  //将结果集缓存
  file_put_contents($cachFile, $strContent);
}
//获得结果后smarty赋值
$smarty->assign($arrResult);
//输出模板
$smarty->display();

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
推荐文章系统(一)
Oct 09 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
php curl基本操作详解
Jul 23 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
PHP的password_hash()使用实例
Mar 17 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
详解PHP错误日志的获取方法
Jul 20 #PHP
php实现网站顶踩功能的完整前端代码
Jul 19 #PHP
php实现上传图片文件代码
Jul 19 #PHP
54个提高PHP程序运行效率的方法
Jul 19 #PHP
浅谈COOKIE和SESSION区别
Jul 19 #PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 #PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 #PHP
You might like
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
网页常用特效代码整理
2006/06/23 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
pandas的排序和排名的具体使用
2019/07/31 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
人力资源行政经理自我评价
2013/10/23 职场文书
一年级数学教学反思
2014/02/01 职场文书
保护环境的建议书
2014/03/12 职场文书
学校安全生产承诺书
2014/05/23 职场文书
签订劳动合同通知书
2015/04/16 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
Python中的 Set 与 dict
2022/03/13 Python