搜索
首页后端开发php教程PHP中9大缓存技术总结_PHP教程

PHP中9大缓存技术总结

1、全页面静态化缓存

也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;

一种比较常用的实现方式是用输出缓存:

<code><span class="typ">Ob_start<span class="pun">()<span class="pln">
<span class="pun">******要运行的代码*******<span class="pln">
$content <span class="pun">=<span class="pln"> <span class="typ">Ob_get_contents<span class="pun">();<span class="pln">
<span class="pun">****将缓存内容写入<span class="pln">html<span class="pun">文件*****<span class="pln">
<span class="typ">Ob_end_clean<span class="pun">();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

2、页面部分缓存

该种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于ob_get_contents的方式实现,也可以利用类似ESI之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存(ESI技术,请baidu,此处不详讲)。

该种方式可以用于如商城中的商品页;

3、数据缓存

顾名思义,就是缓存数据的一种方式;比如,商城中的某个商品信息,当用商品id去请求时,就会得出包括店铺信息、商品信息等数据,此时就可以将这些数据缓存到一个php文件中,文件名包含商品id来建一个唯一标示;下一次有人想查看这个商品时,首先就直接调这个文件里面的信息,而不用再去数据库查询;其实缓存文件中缓存的就是一个php数组之类;

Ecmall商城系统里面就用了这种方式;

4、查询缓存

其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示;

按时间变更进行缓存

其实,这一条不是真正的缓存方式;上面的2、3、4的缓存技术一般都用到了时间变更判断;就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的访问才会先取缓存文件的内容,但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时更新一次;

5、按内容变更进行缓存

这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件;
比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存;

当商家在后台修改这个商品的信息时,点击保存,我们同时就更新缓存文件;那么,买家访问这个商品信息时,实际上访问的是一个静态页面,而不需要再去访问数据库;

试想,如果对商品页不缓存,那么每次访问一个商品就要去数据库查一次,如果有10万人在线浏览商品,那服务器压力就大了;

6、内存式缓存

提到这个,可能大家想到的首先就是Memcached;memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

它就是将需要缓存的信息,缓存到系统内存中,需要获取信息时,直接到内存中取;比较常用的方式就是 key–>value方式;

<code><span class="pun"><?<span class="pln">php 
     $memcachehost <span class="pun">=<span class="pln"> <span class="str">&#39;192.168.6.191&#39;<span class="pun">;<span class="pln">
     $memcacheport <span class="pun">=<span class="pln"> <span class="lit">11211<span class="pun">;<span class="pln">
     $memcachelife <span class="pun">=<span class="pln"> <span class="lit">60<span class="pun">;<span class="pln">
     $memcache <span class="pun">=<span class="pln"> <span class="kwd">new<span class="pln"> <span class="typ">Memcache<span class="pun">;<span class="pln">
     $memcache<span class="pun">-><span class="pln">connect<span class="pun">(<span class="pln">$memcachehost<span class="pun">,<span class="pln">$memcacheport<span class="pun">)<span class="pln"> <span class="kwd">or<span class="pln"> <span class="kwd">die<span class="pln"> <span class="pun">(<span class="str">"Could not connect"<span class="pun">);<span class="pln">
     $memcache<span class="pun">-><span class="kwd">set<span class="pun">(<span class="str">&#39;key&#39;<span class="pun">,<span class="str">&#39;缓存的内容&#39;<span class="pun">);<span class="pln">
     $get <span class="pun">=<span class="pln"> $memcache<span class="pun">-><span class="kwd">get<span class="pun">(<span class="pln">$key<span class="pun">);<span class="pln">       <span class="com">//获取信息<span class="pln">
<span class="pun">?></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

7、apache缓存模块

apache安装完以后,是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。

安装apache时:./configure –enable-cache –enable-disk-cache –enable-mem-cache

8、php APC缓存扩展

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

<code><span class="pun">[<span class="pln">apc<span class="pun">]<span class="pln"> 
     extension<span class="pun">=<span class="pln">php_apc<span class="pun">.<span class="pln">dll 
     apc<span class="pun">.<span class="pln">rfc1867 <span class="pun">=<span class="pln"> on 
     upload_max_filesize <span class="pun">=<span class="pln"> <span class="lit">100M<span class="pln"> 
     post_max_size <span class="pun">=<span class="pln"> <span class="lit">100M<span class="pln"> 
     apc<span class="pun">.<span class="pln">max_file_size <span class="pun">=<span class="pln"> <span class="lit">200M<span class="pln"> 
     upload_max_filesize <span class="pun">=<span class="pln"> <span class="lit">1000M<span class="pln"> 
     post_max_size <span class="pun">=<span class="pln"> <span class="lit">1000M<span class="pln"> 
     max_execution_time <span class="pun">=<span class="pln"> <span class="lit">600<span class="pln"> <span class="pun">;<span class="pln">   <span class="pun">每个<span class="pln">PHP<span class="pun">页面运行的最大时间值(秒),默认<span class="lit">30<span class="pun">秒<span class="pln"> 
     max_input_time <span class="pun">=<span class="pln"> <span class="lit">600<span class="pln"> <span class="pun">;<span class="pln">       <span class="pun">每个<span class="pln">PHP<span class="pun">页面接收数据所需的最大时间,默认<span class="lit">60<span class="pln"> 
     memory_limit <span class="pun">=<span class="pln"> <span class="lit">128M<span class="pln"> <span class="pun">;<span class="pln">       <span class="pun">每个<span class="pln">PHP<span class="pun">页面所吃掉的最大内存,默认<span class="lit">8M</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

9、Opcode缓存

我们知道,php的执行流程可以用下图来展示:
图片描述
首先php代码被解析为Tokens,然后再编译为Opcode码,最后执行Opcode码,返回结果;所以,对于相同的php文件,第一次运行时可以缓存其Opcode码,下次再执行这个页面时,直接会去找到缓存下的opcode码,直接执行最后一步,而不再需要中间的步骤了。

比较知名的是XCache、Turck MM Cache、PHP Accelerator等。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1056559.htmlTechArticlePHP中9大缓存技术总结 1、全页面静态化缓存 也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
APC缓存技术在PHP中的应用实践APC缓存技术在PHP中的应用实践Jun 19, 2023 pm 07:16 PM

随着互联网的发展和数据处理量的不断增加,许多网站需要处理大量的数据查询和计算,这就需要高效的缓存机制来优化网站访问速度。APC(AlternativePHPCache)是一种在PHP语言中常用的缓存技术,它能够提升网站的性能和响应速度,本文将介绍APC缓存技术的基本原理以及在PHP中的应用实践。一、APC缓存技术的原理APC是一种开源的缓存技术,它可以将

APC缓存技术在基于PHP应用中使用游标迭代的解决方案APC缓存技术在基于PHP应用中使用游标迭代的解决方案Jun 19, 2023 pm 11:30 PM

随着互联网应用的发展,PHP作为一门流行的开发语言,被广泛应用于Web应用程序的开发中。然而,在实际的开发中,我们常常会遇到一些性能瓶颈的问题,导致应用程序无法满足用户的需求。而其中一个常见的瓶颈就是数据库查询造成的性能问题。为了解决这个问题,我们可以采用一些缓存技术,其中APC缓存技术是一个很好的选项。APC(AlternativePHPCache)是

APC缓存技术在PHP应用中被使用的常见方式分析APC缓存技术在PHP应用中被使用的常见方式分析Jun 20, 2023 pm 12:39 PM

APC(AlternativePHPCache)是一种PHP脚本的缓存技术,能够提高PHP应用性能。目前,它是PHP中最流行的缓存技术之一。本文将分析APC缓存技术在PHP应用中被使用的常见方式。1.缓存页面输出一个常见的使用APC缓存的方式是在页面输出中缓存数据,然后再下次请求时使用缓存数据。此方法可以明显提高应用程序的性能,尤其是在一个页面被频繁访问

如何使用APC进行PHP数据缓存优化?如何使用APC进行PHP数据缓存优化?Aug 10, 2023 am 10:30 AM

如何使用APC进行PHP数据缓存优化?简介:在开发过程中,我们经常会遇到需要频繁从数据库中读取数据并做处理的情况。这种情况下,为了提高性能和减少对数据库的访问压力,我们可以使用缓存来存储已经查询过的数据。APC(AlternativePHPCache)是一种常用的PHP扩展,允许我们将数据缓存在内存中,以加快PHP应用程序的运行速度。本文将介绍如何使用A

在基于PHP应用中使用APC缓存技术实现聚合查询分析的应用场景在基于PHP应用中使用APC缓存技术实现聚合查询分析的应用场景Jun 20, 2023 pm 09:24 PM

APC缓存技术是一种基于PHP的缓存技术,它可以在减少服务器负载的同时提高应用性能。在基于PHP的应用程序中,APC缓存技术可以实现聚合查询分析,提高应用程序的效率以及用户的体验。聚合查询分析是指将多个查询结果合并在一起以得出更综合、更全面的数据分析结果。在处理大量数据时,聚合查询分析能够帮助我们捕捉数据中的重要信息,提高数据处理的效率,并减少需要对服务器进

在PHP应用中使用APC缓存技术进行动态数据缓存的应用场景在PHP应用中使用APC缓存技术进行动态数据缓存的应用场景Jun 21, 2023 pm 04:01 PM

随着Web应用越来越复杂,动态数据缓存成为了一个必需的技术。APC(AlternativePHPCache)作为一种内存缓存技术,可以大大提高Web应用的性能和响应速度。本文将介绍在PHP应用中使用APC缓存技术进行动态数据缓存的应用场景。访问频次较高的数据缓存一些数据在Web应用中被频繁访问,如果每次都从数据库中读取会严重影响应用性能。这时候可以将这些

PHP应用中使用APC缓存技术的好处PHP应用中使用APC缓存技术的好处Jun 20, 2023 pm 09:18 PM

随着互联网的发展,PHP作为一种流行的Web编程语言被广泛应用于网站开发和应用程序开发。在PHP应用中,缓存技术可以提高应用的性能和可伸缩性,同时也可以减少服务器的负载压力。其中,APC缓存技术是一种常用的缓存技术之一,可以有效提高应用的响应速度和效率。APC缓存技术是一种PHP内置的缓存插件,全称为AlternativePHPCache。它可以缓存编译

APC缓存技术对于PHP应用程序性能的优化效果APC缓存技术对于PHP应用程序性能的优化效果Jun 19, 2023 pm 06:28 PM

随着互联网应用的不断发展,越来越多的业务逻辑被放到了Web应用程序中。而Web应用程序的速度受到许多因素的影响,如硬件性能、网络带宽、数据库性能等等,这些都是需要不断优化的。其中,缓存技术是一种在Web应用程序中广泛使用的优化方式,APC缓存技术则是PHP应用程序中使用的一种缓存技术。一、APC缓存技术简介APC全称为AlternativePHPCach

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具