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 and xml示例
Nov 22 PHP
探讨php中遍历二维数组的几种方法详解
Jun 08 PHP
sae使用smarty模板的方法
Dec 17 PHP
PHP错误和异长常处理总结
Mar 06 PHP
PHP获取文件相对路径的方法
Feb 26 PHP
php实现httpRequest的方法
Mar 13 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
php微信公众号开发之音乐信息
Oct 20 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
js的逻辑运算符 ||
2010/05/31 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vue-router权限控制(简单方式)
2018/10/29 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python实现接口并发测试脚本
2019/06/25 Python
如何使用Python 打印各种三角形
2019/06/28 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
Python爬虫开发与项目实战
2020/12/16 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
error和exception有什么区别
2012/10/02 面试题
餐厅保洁员岗位职责
2015/04/10 职场文书
值班管理制度范本
2015/08/06 职场文书
小学语文国培研修日志
2015/11/13 职场文书
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang
Golang流模式之grpc的四种数据流
2022/04/13 Golang