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 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
mysql 的 like 问题,超强毕杀记!!!
Jan 18 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
使用phpstorm和xdebug实现远程调试的方法
Dec 29 PHP
ThinkPHP开发--使用七牛云储存
Sep 14 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
2017/09/01 jQuery
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
Python编程中的文件操作攻略
2015/10/16 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
python能做哪些生活有趣的事情
2020/09/09 Python
python实现邮件循环自动发件功能
2020/09/11 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
抽象类和接口的区别
2012/09/19 面试题
大专生简历的自我评价
2013/11/26 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
2014年党支部承诺书
2014/05/30 职场文书
企业年度评优方案
2014/06/02 职场文书
元旦晚会活动总结
2014/07/09 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
自荐信大全
2019/03/21 职场文书
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python