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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
php调用C代码的实现方法
Mar 11 PHP
php二维码生成
Oct 19 PHP
详解php中反射的应用
Mar 15 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 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
德劲1107的电路分析与打磨
2021/03/02 无线电
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
2017/09/04 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
促销活动总结怎么写
2014/06/25 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP