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 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
深入PHP变量存储的详解
Jun 13 PHP
php阻止页面后退的方法分享
Feb 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
Joomla调用系统自带编辑器的实现方法
May 05 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP二维数组去重算法
Dec 17 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
搜索附近的人PHP实现代码
Feb 11 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
星际争霸任务指南——人族
2020/03/04 星际争霸
php支付宝手机网页支付类实例
2015/03/04 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python实现k-means算法
2018/02/23 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
Python实现验证码识别
2020/06/15 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
ziaja齐叶雅官方海外旗舰店:来自波兰的天然护肤品牌
2017/01/02 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
中学教师培训制度
2014/01/31 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
2019年教师入党申请书
2019/06/27 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
Java Socket实现多人聊天系统
2021/07/15 Java/Android
Python绘画好看的星空图
2022/03/17 Python