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 相关文章推荐
几种显示数据的方法的比较
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
比较详细PHP生成静态页面教程
Jan 10 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
如何在PHP中生成随机数
Jun 04 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
解析php开发中的中文编码问题
2013/08/08 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
javascript每日必学之封装
2016/02/23 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python字符遍历的艺术
2008/09/06 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
python通过socket查询whois的方法
2015/07/18 Python
python运行时间的几种方法
2016/06/17 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
python实现图书管理系统
2018/03/12 Python
3分钟学会一个Python小技巧
2018/11/23 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
JDO的含义
2012/11/17 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
计算机专业大学生的自我评价
2013/11/14 职场文书
运动会报道稿300字
2014/10/02 职场文书
2014年妇女工作总结
2014/12/06 职场文书
法学专业求职信范文
2015/03/19 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
python数字图像处理实现图像的形变与缩放
2022/06/28 Python