文档章节

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

疯狂的小黑
 疯狂的小黑
发布于 2016/11/18 11:40
字数 925
阅读 5
收藏 0
PHP

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

 

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

 

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服务器软件,这个要说起来就大了,自己搜索去,大家知道有这个东西就行了。

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

© 著作权归作者所有

共有 人打赏支持
疯狂的小黑
粉丝 3
博文 96
码字总数 80472
作品 0
东城
程序员
私信 提问
PHP缓存库phpFastCache

phpFastCache是一个开源的PHP缓存库,只提供一个简单的PHP文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的A...

舆图易稿
2014/11/28
0
0
多功能轻量级 PHP 框架 - Lying Framework

Lying是在工作中通过不断改进,总结后编写而成的一个小巧的PHP框架,身怀100k+的代码,麻雀虽小,五脏俱全,集多种特性于一身: 单入口经典MVC。 代码库0依赖。 代码遵循PSR-2规范。 基于PSR...

Revoke
2017/07/28
188
1
php开源框架--CmlPHP

简介 CmlPHP从12年开始开发。从最早追求尽可能轻量,php5.2-的语法。到后面不断总结工作中碰到的实际的问题,加入工程化的一些东西。加入Composer的支持。加入了很多可以减少程序员开发时间的...

雨空
2013/09/11
6.1K
4
PHP 缓存库--phpFastCache

phpFastCache 是一个开源的 PHP 缓存库,只提供一个简单的 PHP 文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单...

匿名
2013/06/06
5.7K
1
中文开源网店--Shopilex

Shopilex是一套基于GPL开源协议的,基于MVC架构的PHP开源电子商务网店系统,是目前中文领域里真正开源免费的网店系统。 Shopilex具有以下特性: 基于MVC,视图和程序分离的模板技术 支持多套模...

Alex_Lin
2011/09/29
14.2K
2

没有更多内容

加载失败,请刷新页面

加载更多

人工智能起步-反向回馈神经网路算法(BP算法)

人工智能分为强人工与弱人工。 弱人工智能就包括我们常用的语音识别,图像识别等,或者为了某一个固定目标实现的人工算法,如:下围棋,游戏的AI,聊天机器人,阿尔法狗等。 强人工智能目前只...

Python女神
7分钟前
2
0
RabbitMQ Dead Letter Exchange

简称DLX 如果一个queue设置了DLX,那么在rabbitmq的管理控制台中的这个queue上就会多个标志,如图: 边上还有DLK,是dead-letter-routing-key的缩写。 队列中的消息,有可能是'dead-lettere...

wmzsonic
18分钟前
0
0
case when then

case具有两种格式。简单case函数和case搜索函数。 --简单case函数case sex when '1' then '男' when '2' then '女’ else '其他' end--case搜索函数case when sex = '1' the...

architect刘源源
25分钟前
1
0
Kubernetes探秘—kubelet的配置参数

kubelet是Kubernetes中的核心组件,需要在每一个节点安装,也是kubernetes集群启动的第一个服务。kubelet的参数存放在多个目录,修改时如果不完整就会导致各种错误,下面我们kubelet的参数存...

openthings
28分钟前
1
0
如何通过 MySQL 的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过 MySQL 的二...

吴伟祥
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部