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中GET变量的使用
Oct 09 PHP
最省空间的计数器
Oct 09 PHP
PHP编实现程动态图像的创建代码
Sep 28 PHP
PHP 引用是个坏习惯
Mar 12 PHP
PHP在字符断点处截断文字的实现代码
Apr 21 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
[原创]PHP字符串中插入子字符串方法总结
May 06 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
PHP7 安装event扩展的实现方法
Oct 08 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 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实现图片简单上传
2006/10/09 PHP
PHP数组实例总结与说明
2011/08/23 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
2017/09/05 jQuery
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
红歌会主持词
2015/07/02 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL