手机版

PHP 9缓存技术综述

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

1.整页静态缓存

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

一种常见的实现是使用输出缓冲区:

Ob_start()

* * * * *运行的代码* * * * * *

$ content=Ob _ get _ contents();

* * * *将缓存的内容写入html文件* * * * * *

ob _ end _ clean();

2.页面部分缓存

这样,页面不变的部分被静态缓存,而频繁变化的块不被缓存,最后被组装在一起显示;可以用类似ob_get_contents的方式实现,也可以用ESI这样的页面段缓存策略(ESI技术,请百度,这里不做描述)来缓存动态页面中相对静态的段。

这个方法可以用于商场的商品页面;

3.数据缓存

顾名思义,就是缓存数据的一种方式;例如,当商场中的商品信息被请求商品id时,它将获得包括商店信息、商品信息等的数据。此时,这些数据可以缓存在一个php文件中,文件名中包含商品id来构建唯一的标记;下次有人要查这个产品,先直接调整这个文件里的信息,不要去数据库查询;事实上,缓存文件中缓存的是一个php数组等等;

该方法用于Ecmall商城系统;

4.查询缓存

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

按时间变化缓存

其实这个不是真正的缓存方法;上述缓存技术2、3和4一般使用时间变化判断;即需要为缓存文件设置一个有效时间,在此期间,对于相同的访问,会先检索缓存文件的内容,但如果超过了设置的缓存时间,则需要从数据库中检索数据,产生最新的缓存文件;比如我把我们商场的首页设置为2小时更新一次;

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

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

比如人流量大的商场,商品很多,商品表肯定比较大,这个表的压力也比较大;我们可以缓存产品展示页面;

商家在后台修改该产品信息时,点击保存,我们会同时更新缓存文件;然后,当买方访问这个产品信息时,他实际上访问了一个静态页面,而没有访问数据库;

想象一下,如果产品页面没有被缓存,那么每次你访问一个产品,你必须去数据库检查它。如果有10万人在线浏览产品,服务器压力会很大;

6.超高速缓冲存储系统

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

是将需要缓存的信息缓存到系统内存中,当需要获取信息时,直接从内存中取出;比较常见的方式是键值方式;

?PHP $ memcachehost=' 192 . 168 . 6 . 191 ';$ memcacheport=11211$ memcachelife=60$memcache=新的Memcache;$ memcache-connect($ memcachehost,$memcacheport)或die('无法连接');$memcache-set('key ','缓存内容');$ get=$ memcache-get($ key);//获取信息?7.apache缓存模块

安装后不允许缓存Apache。如果外部缓存或者squid服务器需要web加速,需要在htttpd.conf中设置,当然前提是在安装apache的时候激活mod_cache模块。

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

8.php APC缓存扩展

Php有一个APC缓存扩展,php_apc.dll在windows下。这个模块需要先加载,然后用php.ini配置:

extension=PHP _ APC . dll APC . RFC 1867=on upload _ max _ file size=100M post _ max _ size=100M APC . max _ file _ size=200M upload _ max _ file size=1000M post _ max _ size=1000M max _ execution _ time=600;每个PHP页面运行的最大时间值(秒),默认值为30秒max _ input _ time=600每个PHP页面接收数据所需的最长时间默认为60 memory _ limit=128M默认情况下,每个PHP页面消耗的最大内存为8M9,操作码缓存为

我们知道,php的执行过程可以如下图所示:

首先将php代码解析为Tokens,然后编译为Opcode代码,最后执行Opcode代码并返回结果;因此,对于同一个php文件,您可以在第一次运行它时缓存它的操作码。下次执行这个页面时,会直接在缓存下找到操作码,直接执行最后一步,而不是中间一步。

版权声明:PHP 9缓存技术综述是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。