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 相关文章推荐
PHP4和PHP5共存于一系统
Nov 17 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
php+ajax实现图片文件上传功能实例
Jun 17 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
May 13 PHP
windows下apache搭建php开发环境
Aug 27 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
php判断邮箱地址是否存在的方法
Feb 13 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 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
php5.5新数组函数array_column使用
2013/07/08 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
Python随机函数random()使用方法小结
2018/04/29 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python解释器spython使用及原理解析
2019/08/24 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
世界顶级俱乐部的官方球衣和套装:Subside Sports
2018/04/22 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
《我不是最弱小的》教学反思
2014/02/23 职场文书
兴趣小组活动总结
2014/05/05 职场文书
英语教育专业自荐信
2014/05/29 职场文书
政风行风建设责任书
2014/07/23 职场文书