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
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
Feb 05 PHP
php 基础函数
Feb 10 PHP
PDO::lastInsertId讲解
Jan 29 PHP
PHP chunk_split()函数讲解
Feb 12 PHP
php实现微信和支付宝支付的示例代码
Aug 11 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 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
我的论坛源代码(一)
2006/10/09 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python编写一个优美的下载器
2018/04/15 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
Python多图片合并PDF的方法
2019/01/03 Python
django query模块
2019/04/20 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
新护士岗前培训制度
2014/02/02 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
毕业实习计划书
2015/01/16 职场文书