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分页显示制作详细讲解
Nov 19 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
PHP微信开发用Cache 解决数据缓存
Jul 11 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
php读取XML的常见方法实例总结
Apr 25 PHP
PHP模型Model类封装数据库操作示例
Mar 14 PHP
PHP抽象类与接口的区别详解
Mar 21 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
十天学会php之第四天
2006/10/09 PHP
PHP学习笔记之二
2011/01/17 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
学年自我鉴定范文
2013/10/01 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
党的生日演讲稿
2014/09/10 职场文书
节约用电倡议书
2015/04/28 职场文书
英语投诉信范文
2015/07/03 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server