首页 > 编程知识 正文

php缓存扩展模块(php常用的缓存技术汇总php技术之缓存机制的好处)

时间:2023-12-10 13:48:24 阅读:314061 作者:YJMV

本文目录一览:

怎么安装PHP的pcntl扩展模块

1、首先你嘚在这个目录(D:wampphpext)下有pcntl.so扩展模块文件;

2、修改配置文件php.ini

extension_dir = "D:/wamp/php/ext"; //扩展库的文件夹路径

extension=pcntl.so

3、重启apache服务器

Linux安装参考文献:

PHP中4个加速,缓存扩展的区别和选用建议

1、eAccelerator

eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。从文字上可以理解为:eAccelerator是PHP加速器扩展。

2、memcached

Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。从文字上可以理解为:内存缓存扩展,并且针对于集群服务器使用较多,主要用于分布式缓存,算是数据库缓存。

3、Alternative PHP Cache(APC缓存)

Alternative PHP Cache (APC缓存)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存Opcode(目标文件)的PHP中间码。 APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运PHP代码后需要restart一下您的web服务器(比如apache…).目前对APC的性能测试一般指的是这一层cache;从文字上理到:Alternative PHP Cache(APC缓存)也算是一种内存缓存扩展,算是数据库缓存扩展。

4、Xcache

是一个开源的opcode缓存器/优化器, 他能够提高服务器上的PHP性能,他通过把编译PHP后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率2到5倍, 降低服务器负载。 其实它与eAccelerator一样是PHP加速器扩展。

以上就是他们的作用与区别,简单一点就是:eAccelerator,xcache是PHP缓存扩展,memcached、APC缓存是数据库缓存扩展,一般两者只有要安装其中一个即可,不要贪多。另外,实际测试中发现当Cache数量超过一定阀值的时候,APC的性能不如Memcache。所以在扩展的选择上,本人一般会选择xcache+memcached这个组合。

如何在编译好的PHP环境中安装PHP扩展模块

1、先进入php解压缩后的源码包中,找到要安装的扩展模块的目录。

[root@redhat5 sockets]# cd /home/soft/php-5.2.12/ext/sockets

在sockets目录下面以绝对路径运行phpize程序,这时会自动生成sockets的configure程序,在sockets目录下面可以看到。

[root@redhat5 sockets]# /home/webserver/php5.2.12/bin/phpize

2、进行编译安装

[root@redhat5 sockets]# ./configure --with-php-config=/home/webserver/php5.2.12/bin/php-config

[root@redhat5 sockets]#make

[root@redhat5 sockets]#make install

执行完make install屏幕上会提示sockets.so存放的路径,然后把它复制到php的extensions目录中,例如我的路径为 /home/webserver/php5.2.12/lib/php/extensions

3、修改php.ini文件

找到extension_dir = "./" 这行,修改为:

extension_dir = "/home/webserver/php5.2.12/lib/php/extensions/"

然后再新增加一行:

extension=sockets.so

4、重启apache即可生效。 希望能帮到你,我还要抓紧时间自己在后盾人自己学习呢,一起加油吧(づ ̄ ³ ̄)づ

楚雄java培训学校告诉你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之类的页面片段缓存策略,使其用来做动态页面中相对静态的片段部分的缓存。

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

五、Opcode缓存

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

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

六、按内容变更进行缓存

这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时,即刻更新缓存文件;

比如,一个人流量很大的商城,商品很多,商品表必然比较大,这表的压力也比较重;我们就可以对商品显示页进行页面缓存;

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

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

七、内存式缓存

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

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

connect($memcachehost,$memcacheport)ordie("Couldnotconnect");$memcache-set('key','缓存的内容');$get=$memcache-get($key);//获取信息?

八、apache缓存模块

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

有人能简单说说php中的扩展模块作用吗

我刚开始的时候和楼下的想法一样,觉得这种一百度一大堆的东西干嘛要提问。

结果我真百度的时候才发现百度原来真的不好找到。

不过,最后还是找到了。下面的表格就是扩展库所有扩展的说明和注解和解释。

-------------------------------------------华丽分割线------------------------------------------

扩展库 说明 注解

php_bz2.dll bzip2 压缩函数库 无

php_calendar.dll 历法转换函数库 自 PHP 4.0.3 起内置

php_cpdf.dll ClibPDF 函数库 无

php_crack.dll 密码破解函数库 无

php_ctype.dll ctype 家族函数库 自 PHP 4.3.0 起内置

php_curl.dll CURL,客户端 URL 库函数库 需要:libeay32.dll,ssleay32.dll(已附带)

php_cybercash.dll 网络现金支付函数库 PHP = 4.2.0

php_db.dll DBM 函数库 已废弃。用 DBA 替代之(php_dba.dll)

php_dba.dll DBA:数据库(dbm 风格)抽象层函数库 无

php_dbase.dll dBase 函数库 无

php_dbx.dll dbx 函数库

php_domxml.dll DOM XML 函数库 PHP = 4.2.0 需要:libxml2.dll(已附带),PHP = 4.3.0 需要:iconv.dll(已附带)

php_dotnet.dll .NET 函数库 PHP = 4.1.1

php_exif.dll EXIF 函数库 需要 php_mbstring.dll。并且在 php.ini 中,php_exif.dll 必须在 php_mbstring.dll之后加载。

php_fbsql.dll FrontBase 函数库 PHP = 4.2.0

php_fdf.dll FDF:表单数据格式化函数库 需要:fdftk.dll(已附带)

php_filepro.dll filePro 函数库 只读访问

php_ FTP 函数库 自 PHP 4.0.3 起内置

php_gd.dll GD 库图像函数库 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数,用 php_gd2.dll 替代。

php_gd2.dll GD 库图像函数库 GD2

php_gettext.dll Gettext 函数库 PHP = 4.2.0 需要 gnu_gettext.dll(已附带),PHP = 4.2.3 需要 libintl-1.dll,iconv.dll(已附带)。

php_hyperwave.dll HyperWave 函数库 无

php_iconv.dll ICONV 字符集转换 需要:iconv-1.3.dll(已附带),PHP =4.2.1 需要 iconv.dll

php_ifx.dll Informix 函数库 需要:Informix 库

php_iisfunc.dll IIS 管理函数库 无

php_imap.dll IMAP,POP3 和 NNTP 函数库 无

php_ingres.dll Ingres II 函数库 需要:Ingres II 库

php_interbase.dll InterBase functions 需要:gds32.dll(已附带)

php_java.dll Java 函数库 PHP = 4.0.6 需要:jvm.dll(已附带)

php_ldap.dll LDAP 函数库 PHP = 4.2.0 需要 libsasl.dll(已附带),PHP = 4.3.0 需要 libeay32.dll,ssleay32.dll(已附带)

php_mbstring.dll 多字节字符串函数库 无

php_mcrypt.dll Mcrypt 加密函数库 需要:libmcrypt.dll

php_mhash.dll Mhash 函数库 PHP = 4.3.0 需要:libmhash.dll(已附带)

php_mime_magic.dll Mimetype 函数库 需要:magic.mime(已附带)

php_ming.dll Ming 函数库(Flash) 无

php_msql.dll mSQL 函数库 需要:msql.dll(已附带)

php_mssql.dll MSSQL 函数库 需要:ntwdblib.dll(已附带)

php_mysql.dll MySQL 函数库 PHP = 5.0.0 需要 libmysql.dll(已附带)

php_mysqli.dll MySQLi 函数库 PHP = 5.0.0 需要 libmysql.dll(PHP = 5.0.2 中是 libmysqli.dll)(已附带)

php_oci8.dll Oracle 8 函数库 需要:Oracle 8.1+ 客户端库

php_openssl.dll OpenSSL 函数库 需要:libeay32.dll(已附带)

php_oracle.dll Oracle 函数库 需要:Oracle 7 客户端库

php_overload.dll 对象重载函数库 自 PHP 4.3.0 起内置

php_pdf.dll PDF 函数库 无

php_pgsql.dll PostgreSQL 函数库 无

php_printer.dll 打印机函数库 无

php_shmop.dll 共享内存函数库 无

php_snmp.dll SNMP 函数库 仅用于 Windows NT!

php_soap.dll SOAP 函数库 PHP = 5.0.0

php_sockets.dll Socket 函数库 无

php_sybase_ct.dll Sybase 函数库 需要:Sybase 客户端库

php_tidy.dll Tidy 函数库 PHP = 5.0.0

php_tokenizer.dll Tokenizer 函数库 自 PHP 4.3.0 起内置

php_w32api.dll W32api 函数库 无

php_xmlrpc.dll XML-RPC 函数库 PHP = 4.2.1 需要 iconv.dll(已附带)

php_xslt.dll XSLT 函数库 PHP = 4.2.0 需要 sablot.dll,expat.dll(已附带)。PHP = 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附带)。

php_yaz.dll YAZ 函数库 需要:yaz.dll(已附带)

php_zip.dll Zip 文件函数库 只读访问

php_zlib.dll ZLib 压缩函数库 自 PHP 4.3.0 起内置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。