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 相关文章推荐
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
Yii分页用法实例详解
Dec 04 PHP
Yii使用技巧大汇总
Dec 29 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
Laravel框架实现超简单的分页效果示例
Feb 08 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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 组件化编程技巧
2009/06/06 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
PHP实现视频文件上传完整实例
2014/08/28 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
通过webpack引入第三方库的方法
2018/07/20 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
python获取标准北京时间的方法
2015/03/24 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
详解Python爬虫的基本写法
2016/01/08 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Pytorch 实现权重初始化
2019/12/31 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
关于毕业的中学校园广播稿
2014/01/26 职场文书
培训科主任岗位职责
2014/08/08 职场文书
法定代表人身份证明书
2014/09/10 职场文书
复兴之路展览观后感
2015/06/02 职场文书
二年级数学教学反思
2016/02/16 职场文书
辞职信怎么写?
2019/05/21 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle