php缓存技术总结

Php缓存技术总结

1. 数据的文件缓存:

这种方式是把数据库查询出来的数据做为缓存的内容,假如查询出来的数据是一个数组,我们可以将这个数组系列化之后再保存在一个PHP文件中,当要读取内容的时候就可以反系列化从而得到一个查询结果的数组。避免了对数据库进行反复的查询。(注:读取文件的速度比查询数据库快,但是要避免文件太多,从而对硬盘的IO操作太多,从而影响速度,所以缓存文件也要合里规划。)

2.内存缓存:

内在缓存应该也是数据缓存的一种,是将数据库查询出来的数据缓存在内存中,共享内存块中。这种方式可以通过扩展软件来实现,现在主流的主要是memcache

3. 页面静态化:

页面生成静态化就是生成静态的html,这样程序下次访问的时候直接请求这个html文件,避免了PHP的重新编译和数据库的查询。

Smarty 模版缓存。

4.动态内容缓存

动态缓存技术之CSI,SSI,ESI

动态内容缓存技术,总体来说就是该静态化的静态化,该动态的保持动态,最后进行组合!

可行的方案大致有三种: CSI , SSI ,ESI

一、CSI (Client Side Includes)

含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。

原理:整个页面依然可以静态化为html页面,不过在需要动态的地方则通过iframe,javascript或ajax来动态加载!

例子:<iframe src='http://abroad.e2bo.com/index.php' border='0'></iframe> 优点:相对比较简单,不需要服务器端做改变和配置;

缺点:不利于搜索引擎优化(iframe方式), javascript兼容性问题,以及客户端缓存问题可能导致更新后不能及时生效!对于客户体验也不够好!

二、SSI(Server Side Includes)

含义:通过注释行SSI命令加载不同模块,构建为html,实现整个网站的内容更新;

原理:通过SSI调用各模块的对应文件,最后组装为html页面,需要服务器模块支持(具体配置本文不做详述),比如:apache服务器需要开启mod_include模块;

例子:

<!--#include virtual="header.html" -->

<!--#include virtual="login.html" -->

<!--#include virtual="footer.html" -->

优点:不受具体语言限制,比较通用,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、IIS等对此都有较好的支持。

缺点:SSI只能在当前服务器上包含加载,不能够直接包含其他服务器上的文件,即不能跨域包含;

三、ESI(Edge Side Includes)

含义及原理:

网上通用的解释如下:通 过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制 策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个 页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。与SSI不同的是,ESI多在 缓存服务器或代理服务器上执行!

例子:

<html>

<head>

<title>ESI Demo</title>

</head>

<body>

<esi:include src="login.php" />

<div>

<h3>这中间是可静态化html内容</3>

</div>

</body>

<html>

优点:可用于缓存整个页面或页面片段,比较适合用于缓存服务器上;

缺点:目前支持ESI的软件还比较少,官方更新也略显缓慢,因此使用不是很广!

结语,该文章仅仅是总结三个可用于动态内容缓存的方案,具体在项目中用不用,用哪个,那就需要具体情况具体分析了!

(以上动态内容缓存的描述引用自)

5. 服务器缓存:

Nginx服务器:基于反向代理

Apache:可以开启基于反向代理的mod_proxy,也可以开启:mod_cache模块。开户mod_cache模块同进还要配合mod_disk_cache ,mod_mem_cache 二者选一

SQUID:一款反向代理服务软件,实现web的快速访问,缓存web数据

6. php模块缓存:

Php有一个APC缓存扩展,windows下面为php_apc.dll,需要先加载这个模块,然后是在php.ini里面进行配置:

[apc]

extension=php_apc.dll

apc.rfc1867 = on

upload_max_filesize = 100M

post_max_size = 100M

apc.max_file_size = 200M

upload_max_filesize = 1000M

post_max_size = 1000M

max_execution_time = 600 ; 每个PHP页面运行的最大时间值(秒),默认30秒

max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60

memory_limit = 128M ; 每个PHP页面所吃掉的最大内存,默认8M

7. mysql缓存:

其实就是配置mysql:

[client]

……

default-character-set=gbk

default-storage-engine=MYISAM max_connections=600

max_connect_errors=500

back_log=200

interactive_timeout=7200 query_cache_size=64M

……

table_cache=512

……

myisam_max_sort_file_size=100G

myisam_max_extra_sort_file_size=100G myisam_sort_buffer_size=128M key_buffer_size=1024M

read_buffer_size=512M

……

thread_concurrency=8

8.PHP缓冲器:

apc, phpa,xcache,Opcode缓存

 

第二篇:php缓存技术总结

Php缓存技术总结

1. 数据的文件缓存:

这种方式是把数据库查询出来的数据做为缓存的内容,假如查询出来的数据是一个数组,我们可以将这个数组系列化之后再保存在一个PHP文件中,当要读取内容的时候就可以反系列化从而得到一个查询结果的数组。避免了对数据库进行反复的查询。(注:读取文件的速度比查询数据库快,但是要避免文件太多,从而对硬盘的IO操作太多,从而影响速度,所以缓存文件也要合里规划。)

2.内存缓存:

内在缓存应该也是数据缓存的一种,是将数据库查询出来的数据缓存在内存中,共享内存块中。这种方式可以通过扩展软件来实现,现在主流的主要是memcache

3. 页面静态化:

页面生成静态化就是生成静态的html,这样程序下次访问的时候直接请求这个html文件,避免了PHP的重新编译和数据库的查询。

Smarty 模版缓存。

4.动态内容缓存

动态缓存技术之CSI,SSI,ESI

动态内容缓存技术,总体来说就是该静态化的静态化,该动态的保持动态,最后进行组合!

可行的方案大致有三种: CSI , SSI ,ESI

一、CSI (Client Side Includes)

含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。

原理:整个页面依然可以静态化为html页面,不过在需要动态的地方则通过iframe,javascript或ajax来动态加载!

例子:<iframe src='http://abroad.e2bo.com/index.php' border='0'></iframe> 优点:相对比较简单,不需要服务器端做改变和配置;

缺点:不利于搜索引擎优化(iframe方式), javascript兼容性问题,以及客户端缓存问题可能导致更新后不能及时生效!对于客户体验也不够好!

二、SSI(Server Side Includes)

含义:通过注释行SSI命令加载不同模块,构建为html,实现整个网站的内容更新;

原理:通过SSI调用各模块的对应文件,最后组装为html页面,需要服务器模块支持(具体配置本文不做详述),比如:apache服务器需要开启mod_include模块;

例子:

<!--#include virtual="header.html" -->

<!--#include virtual="login.html" -->

<!--#include virtual="footer.html" -->

优点:不受具体语言限制,比较通用,只需要Web服务器或应用服务器支持即可,Ngnix、Apache、IIS等对此都有较好的支持。

缺点:SSI只能在当前服务器上包含加载,不能够直接包含其他服务器上的文件,即不能跨域包含;

三、ESI(Edge Side Includes)

含义及原理:

网上通用的解释如下:通 过使用简单的标记语言来对那些可以加速和不能加速的网页中的内容片断进行描述,每个网页都被划分成不同的小部分分别赋予不同的缓存控制 策略,使Cache服务器可以根据这些策略在将完整的网页发送给用户之前将不同的小部分动态地组合在一起。通过这种控制,可以有效地减少从服务器抓取整个 页面的次数,而只用从原服务器中提取少量的不能缓存的片断,因此可以有效降低原服务器的负载,同时提高用户访问的响应时间。与SSI不同的是,ESI多在 缓存服务器或代理服务器上执行!

例子:

<html>

<head>

<title>ESI Demo</title>

</head>

<body>

<esi:include src="login.php" />

<div>

<h3>这中间是可静态化html内容</3>

</div>

</body>

<html>

优点:可用于缓存整个页面或页面片段,比较适合用于缓存服务器上;

缺点:目前支持ESI的软件还比较少,官方更新也略显缓慢,因此使用不是很广!

结语,该文章仅仅是总结三个可用于动态内容缓存的方案,具体在项目中用不用,用哪个,那就需要具体情况具体分析了!

(以上动态内容缓存的描述引用自)

5. 服务器缓存:

Nginx服务器:基于反向代理

Apache:可以开启基于反向代理的mod_proxy,也可以开启:mod_cache模块。开户mod_cache模块同进还要配合mod_disk_cache ,mod_mem_cache 二者选一

SQUID:一款反向代理服务软件,实现web的快速访问,缓存web数据

6. php模块缓存:

Php有一个APC缓存扩展,windows下面为php_apc.dll,需要先加载这个模块,然后是在php.ini里面进行配置:

[apc]

extension=php_apc.dll

apc.rfc1867 = on

upload_max_filesize = 100M

post_max_size = 100M

apc.max_file_size = 200M

upload_max_filesize = 1000M

post_max_size = 1000M

max_execution_time = 600 ; 每个PHP页面运行的最大时间值(秒),默认30秒

max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60

memory_limit = 128M ; 每个PHP页面所吃掉的最大内存,默认8M

7. mysql缓存:

其实就是配置mysql:

[client]

……

default-character-set=gbk

default-storage-engine=MYISAM

max_connections=600

max_connect_errors=500

back_log=200

interactive_timeout=7200

query_cache_size=64M

……

table_cache=512

……

myisam_max_sort_file_size=100G

myisam_max_extra_sort_file_size=100G

myisam_sort_buffer_size=128M

key_buffer_size=1024M

read_buffer_size=512M

……

thread_concurrency=8

8.PHP缓冲器:

9.缓存html内容

把html内容缓存在php文件中,这里指的是php编译好后的内apc, phpa,xcache,Opcode缓存 容。

 

第三篇:php总结

一个学期的工作已经结束,收获不少,下面我对上学期的工作作一总结,为新学期的工作确立新的目标。

在上一学期里,我在思想上严于律己,热爱党的教育事业,全面贯彻党的教育方针,以党员的要求严格要求自己,鞭策自己,力争思想上和工作上在同事、学生的心目中都树立起榜样的作用。积极参加学校组织的各项政治活动。一学期来,我服从学校的工作安排,配合领导和老师们做好校内外的各项工作。我相信在以后的工作学习中,我会在同事们的帮助下,通过自己的努力,克服缺点,取得更大的进步。新学期即将来临,我将更加努力工作,勤学苦练。

在教学工作方面,整学期的教学任务都非常重,一共担任《ASP.NET网页设计》、《计算机基础》和《PHP网页设计》,但不管怎样,为了把自己的教学水平提高,我坚持经常看各种参考资料、实践各种管理方法等,还经常网上找一些优秀的资料学习,还争取机会多出外听课,从中学习别人的长处,领悟其中的教学艺术。平时还虚心请教有经验的老师。在备课过程中认真分析教材,根据教材的特点及学生的实际情况设计教案。一学期来,认真备课、上课、听课、评课,及时批改作业、讲评作业,做好课后辅导工作,广泛涉猎各种知识,形成比较完整的知识结构,严格要求学生,尊重学生,发扬教学民主,使学生学有所得,不断提高,从而不断提高自己的教学水平和思想觉悟,并顺利完成教育教学任务。

在教学中,为了激发学生学习的兴趣,我作了充分的准备,每堂课上之前我都查找各种资料和图片,尽可能地让课堂让课堂气氛活跃,树立起他们学习的信心和激发他们学习的兴趣。本学期的课程用书架构比较简单,很多东西是学生已经会处理的了,所以在课程中加入了大量PHP的配置、服务和管理的知识,主要目的是要让学生一定要有能够自己动手的能力,我参考了在linux教学中的做法,利用虚拟机的形式进行了大量实验,整合方案来开展学生的动手实践工作,取得了很好的效果,学生的学习热情高涨。我总结在实际的应用中就需要学生能够把学习的理论和实际相结合,不但可以提高学习效果,也能够刺激学生的好奇心和求知欲,在两者结合的情况下才能达到最好的效果。

对于大三的学生中还有很多人熟悉编程方法,这种情况会对以后的工作造成比较大的障碍。所以我利用每次实验的时间要求学生进行程序流程的训练,基本要求是,不用快,但是一定要知道怎么做。增加学生求职和就业时的筹码。在配置管理方面,不但要求学生懂理论也要进行大量的实践活动,采用提出问题,解决问题的方式来指导学生的学习。

我在做好各项教育教学工作的同时,严格遵守学校的各项规章制度。处理好学校工作与个人之间的关系,一个学期里没有缺席过一次,晚上也是坚持天天加班,一边完成学校的各项任务,一边准备教材和学习自己的专业知识。在新学期中,我应更加勤恳,为学校作更多的事,自己更加努力学习专业知识,使自己的业务水平更上一层楼。

教书育人是塑造灵魂的综合性艺术。在课程改革推进的今天,社会对教师的素质要求更高,在今后的教育教学工作中,我将立足实际,认真分析和研究好教材、大纲,研究好学生,争取学校领导、师生的支持,创造性地搞好信息技术课的教学,使我们的工作有所开拓,有所进取,更加严格要求自己,努力工作,发扬优点,改正缺点,开拓前进,为美好的明天奉献自己的力量。

20xx-1-5

相关推荐