你应该了解的php缓存技术

缓存是现在系统中必不可少的模块,并且已经成为了高并发高性能架构的一个关键组件。

概念缓存

所谓的缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

1、通过文件缓存;

顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;

2、内存缓存;

也就是创建一个静态内存区域,将数据存储进去,例如我们B/S架构的将数据存储在Application中或者存储在一个静态Map中。

3、分布式缓存机制;

可能存在跨进程,跨域访问缓存数据

对于分布式的缓存,此时因为缓存的数据是放在缓存服务器中的,或者说,此时应用程序需要跨进程的去访问分布式缓存服务器。

PHP缓存

PHP缓存包括PHP编译缓存和PHP数据缓存两种。

PHP是一种解释型语言,属于边编译边运行的那种。这种运行模式的优点是程序修改很方便,但是运行效率却很低下。

PHP编译缓存针对这种情况做改进处理,使得PHP语言只要运行一次,就可以把程序的编译结果缓存起来。

PHP是一种解释型语言,在PHP语言执行代码的时候,需要下面两步:

1、编译过程。

PHP读取文件,并编译该文件,然后生成能够在ZndEngin虚拟机上执行的中间码。

2、执行过程。

PHP直接执行中间码。

效率低下的场景:

1、即使PHP代码文件没有发生改变,也会被PHP重新编译。

2、如有引用文件,PHP也要花费时间重新编译这些被引用的文件。

因此,需要PHP编译缓存工具对PHP程序的编译结果做缓存处理。这样,PHP程序只要编译一次,就不要重新再做无意义的编译了。

PHP的数据缓存包括针对数据库数据进行缓存和针对PHP模板数据进行缓存。

针对数据库数据进行缓存的工具有mmcach等。

针对PHP模板数据进行缓存的工具主要有smarty等。

优势提升性能

绝大多数情况下,slct是出现性能问题最大的地方。

一方面,slct会有很多像join、group、ordr、lik等这样丰富的语义,而这些语义是非常耗性能的;

另一方面,大多数应用都是读多写少,所以加剧了慢查询的问题。

分布式系统中远程调用也会耗很多性能,因为有网络开销,会导致整体的响应时间下降。

为了挽救这样的性能开销,在业务允许的情况(不需要太实时的数据)下,使用缓存是非常必要的事情。

缓解数据库压力

当用户请求增多时,数据库的压力将大大增加,通过缓存能够大大降低数据库的压力。

缓存的适用场景

对于数据实时性要求不高

对于一些经常访问但是很少改变的数据,读明显多于写,适用缓存就很有必要。

比如一些网站配置项。

对于性能要求高

比如一些秒杀活动场景。

生存期

生存期是指数据保持有效性的时间区间,也就是从创建到移除的时间间隔。

通常的生存期有以下几种:

永久状态PrmanntStat——应用程序使用的永久数据;

进程状态ProcssStat——只在进程周期内有效;

会话状态SssionStat——和特定的用户会话有关;

消息状态MssagStat——处理某个消息的时间内有效;

缓存技术

Mmcachd是一个自由开源的,高性能,分布式内存对象缓存系统。

Mmcachd是以LivJournal旗下DangaIntractiv公司的BradFitzpatric为首开发的一款软件。现在已成为mixi、hatna、Facbook、Vox、LivJournal等众多服务中提高Wb应用扩展性的重要因素。

Mmcachd是一种基于内存的ky-valu存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

Mmcachd简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。

本质上,它是一个简洁的ky-valu存储系统。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Wb应用的速度、提高可扩展性。

特征

mmcachd作为高速运行的分布式缓存服务器,具有以下的特点:

协议简单

基于libvnt的事件处理

内置内存存储方式

mmcachd不互相通信的分布式

支持的语言

许多语言都实现了连接mmcachd的客户端,其中以Prl、PHP为主。仅仅mmcachd网站上列出的有:

PrlPHPPythonRubyC#C/C++Lua……

原生PHP使用mmcachd示例:

rror_rporting(E_ALL~E_NOTICE);

$mc=nw\Mmcachd();

$mc-addSrvr("XXXX.mmcach.rds.aliyuncs.







































克白灵苏孜阿甫片
北京中科白殿疯医院好不好



转载请注明:http://www.xcqg58.com/zytd/8982.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了