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的access操作类
Apr 09 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
PHP实现支持加盐的图片加密解密
Sep 09 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
PHP 类与构造函数解析
Feb 06 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
php文件后缀不强制为.php的实操方法
Sep 18 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 mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
PHP strripos函数用法总结
2019/02/11 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
2016/07/04 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
python列表操作使用示例分享
2014/02/21 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
机械绘图员岗位职责
2013/11/19 职场文书
车间核算员岗位职责
2014/07/01 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
踏青活动策划方案
2014/08/19 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python