北京IT培训分享PHP应用中常用的9种缓存技术。

首先,整页静态缓存

也就是说,所有的页面都生成为html静态页面,用户访问时可以直接访问,而不需要经过php服务器解析的过程。这种方法在CMS系统中很常见,比如dedecms;

一种常见的实现方法是使用输出缓存:

Ob _ start () * * * * *要运行的代码* * * * * $ content = ob _ get _ contents();* * * *将缓存的内容写入html文件* * * * ob _ end _ clean();

第二,数据缓存

顾名思义,它是一种缓存数据的方式;例如,当用商品id请求购物中心中的商品信息时,将获得包括商店信息和商品信息的数据。这时可以将这些数据缓存在一个php文件中,文件名中包含商品id来构建唯一标记;下次有人想查这个产品,先直接查这个文件里的信息,不用去数据库查询。其实缓存文件里缓存的是php数组之类的;

该方法应用于Ecmall商城系统;

第三,查询缓存

其实这和数据缓存是一个思路,就是根据查询语句进行缓存;将查询得到的数据缓存在一个文件中,下次遇到同样的查询,直接先从这个文件中调出数据,不会再去查数据库;但是,这里的缓存文件名可能需要根据查询语句来建立唯一的标签;

按时间变化缓存

即你需要为缓存文件设置一个有效时间,在此期间相同的访问会先取缓存文件的内容,但是在设置的缓存时间之后,你需要再次从数据库中获取数据,产生最新的缓存文件;比如我把我们商城的主页设置成每2个小时更新一次。

第四,页面部分缓存

这样,一个页面中变化不频繁的部分被静态缓存,而变化频繁的块不被缓存,最后组装在一起显示;可以用类似ob_get_contents的方式实现,也可以用ESI这样的页面片段缓存策略来缓存动态页面相对静态的片段部分。

这种方法可以用在,比如商城里的商品页面;

第五,操作码缓存

首先,php代码被解析成令牌,然后编译成操作码代码,最后执行操作码代码返回结果。所以,对于同一个php文件,可以在第一次运行时缓存它的操作码代码,下次执行这个页面时,直接找到缓存的操作码代码,直接执行最后一步,不需要中间步骤。

比较知名的有XCache、TurckMMCache、PHPAccelerator等等。

6.根据内容变化进行缓存

这不是一个独立的缓存技术,需要结合起来;即当数据库内容被修改时,缓存文件立即更新;

比如人流量大的商场,商品很多,商品清单必然比较大,这一桌的压力也比较重;我们可以缓存产品展示页面;

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

想象一下,如果产品页面没有缓存,那么每次访问一个产品,都要在数据库中查询。如果有65438+万人在线浏览产品,服务器的压力会很大;

七、内存缓存

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

是将需要缓存的信息缓存在系统内存中,需要获取时直接从内存中取出;更常见的方式是key _ & gt价值模式;

connect($memcachehost,$memcacheport)或die(" could not connect ");$ memcache-& gt;Set('key ','缓存内容');$ get = $ memcache-& gt;get($ key);//获取信息?& gt

八、apache缓存模块

apache安装后,不允许缓存。北京IT培训认为,如果外部缓存或squid服务器需要web加速,需要在htttpd.conf中设置,前提是安装apache时激活mod_cache模块。