PHP缓存技术的多种方法小结


Posted in PHP onAugust 14, 2012

1、普遍缓存技术:

数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。

举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。

2、 页面缓存:

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些PHP缓存机制类通常有此功能)

3、 时间触发缓存:

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

4、 内容触发缓存:

当插入数据或更新数据时,强制更新PHP缓存机制。

5、 静态缓存:

这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。

以上内容是代码级的解决方案,下面的内容是服务器端的缓存方案,非代码级的,要有多方的合作才能做到

6、 内存缓存:

Memcached是高性能的,分布式的内存对象PHP缓存机制系统,用于在动态应用中减少数据库负载,提升访问速度。

7、 php的缓冲器:

有eaccelerator, apc, phpa,xcache,这个这个就不说了吧,搜索一堆一堆的,自己看啦,知道有这玩意就OK

8、 MYSQL缓存:

这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的

9、 基于反向代理的Web缓存:

如Nginx,SQUID,mod_proxy(apache2以上又分为mod_proxy和mod_cache)

10、 DNS轮询:
 

BIND是一款开放源码的DNS服务器软件,这个要说起来就大了,自己搜索去,大家知道有这个东西就行了。

我知道的有chinacache等大站就是这样做的,说简单点就是多服务器啦,把同一个页面或文件缓存到不同的服务器上,按南北自动解析到相关的服务器中。

PHP 相关文章推荐
php后台程序与Javascript的两种交互方式
Oct 25 PHP
PHP调用Webservice实例代码
Jul 29 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
跟我学Laravel之快速入门
Oct 15 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 #PHP
php调用dll的实例操作动画与代码分享
Aug 14 #PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 #PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 #PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 #PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 #PHP
php中++i 与 i++ 的区别
Aug 08 #PHP
You might like
header导出Excel应用示例
2014/01/24 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
违章停车检讨书
2014/10/21 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
上下班时间调整通知
2015/04/23 职场文书
男人帮观后感
2015/06/18 职场文书
同学会感言
2015/07/30 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书