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经典的给图片加水印程序
Dec 06 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
Jul 01 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
Apr 15 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
Smarty日期时间操作方法示例
Nov 15 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
PHP里的单例类写法实例
2015/06/25 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
javaScript语法总结
2016/11/25 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
详解Python中的相对导入和绝对导入
2017/01/06 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
谈谈Python中的while循环语句
2019/03/10 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
《问银河》教学反思
2014/02/19 职场文书
规划编制实施方案
2014/03/15 职场文书
2014年双拥工作总结
2014/11/21 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
2015年教师节感言
2015/08/03 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
学术会议开幕词
2016/03/03 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技