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执行速度全攻略(下)
Oct 09 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
隐性调用php程序的方法
Mar 09 PHP
PHP排序算法的复习和总结
Feb 15 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
fckeditor上传文件按日期存放及重命名方法
May 22 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 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中使用Oracle数据库(2)
2006/10/09 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
php随机输出名人名言的代码
2012/10/07 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
JavaScript File分段上传
2016/03/10 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
详解Vue生命周期的示例
2017/03/10 Javascript
vue.js父组件使用外部对象的方法示例
2017/04/25 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
vue实现打印功能的两种方法
2018/09/07 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Python访问MySQL封装的常用类实例
2014/11/11 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python 读取文件并替换字段的实例
2018/07/12 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
keras多显卡训练方式
2020/06/10 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
执行力心得体会
2013/12/31 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
导游词之镜泊湖
2019/12/09 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers