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与已存在的Java应用程序集成
Oct 09 PHP
PHP安全配置
Dec 06 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
PHP实现Unicode编码相互转换的方法示例
Nov 17 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 PHP
PHP中抽象类,接口功能、定义方法示例
Feb 26 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
python 数据加密代码
2008/12/24 Python
Python的另外几种语言实现
2015/01/29 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
详解Python 切片语法
2019/06/10 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
酒店公关部经理岗位职责
2013/11/24 职场文书
公司市场部岗位职责
2013/12/02 职场文书
论文评语大全
2014/04/29 职场文书
提拔干部考察材料
2014/05/26 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
悬空寺导游词
2015/02/05 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
深入探讨opencv图像矫正算法实战
2021/05/21 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers