2018年7月29日星期日

APC,eAccelerator,XCache,memcached,Redis的区别

原文链接:https://www.chenweiliang.com/cwl-940.html

网络营销人用WordPress建站、做电商网络推广,给网站提升速度,能在一定程度上提升SEO效果。


在安装了VestaCP控制面板之类的Linux系统之后,可以选择一些缓存扩展来提高PHP的速度。


CACHE缓存扩展加速


经常会看到的是这些缓存扩展:


  1. APC

  2. eAccelerator

  3. XCache

  4. memcached

  5. Redis

它们之间有什么区别?作用是什么?我们该如何选择?


陈沩亮会在本文给你答案。


一、Alternative PHP Cache(APC缓存)


Alternative PHP Cache(APC缓存)


Alternative PHP Cache(APC缓存)是PHP的开源缓存工具,用于缓存Opcode(目标文件)PHP中间码。


APC的缓存,分为2部分:


  1. 系统缓存

  2. 用户数据缓存

系统缓存是自动使用的:


  • 这意味着APC缓存PHP文件源代码的编译结果,然后再次调用时间戳。

  • 如果它尚未过期,就使用缓存代码运行它。

  • 默认缓存为3600(一小时)。

但这仍然浪费了大量的CPU时间。


因此,您可以将系统缓存设置为永不过期的php.ini文件里,设置system缓存为永不过期(apc.ttl=0)。


但是,如果执行此操作,则需要在更改PHP代码后,重新启动Web服务器(例如,apache)。


目前,APC性能测试一般是指这一层的缓存;


从字面上看,Alternative PHP Cache(APC缓存)也可以被视为内存缓存扩展,


它是一个数据库缓存扩展。


二、eAccelerator


eAccelerator是一个免费的开源PHP加速器。


  • 优化和动态内容缓存,可以提高PHP脚本的缓存性能。

  • 因此可以让PHP脚本在编译状态种,降低服务器的资源消耗。

  • 它还优化了脚本,提高执行效率,将PHP代码的效率提高1-10倍。

  • eAccelerator暂不支持PHP5.5以上的版本。

如同从文字理解的那样:eAccelerator是PHP中的加速器扩展。


三、XCache


XCache是一个开源的opcode缓冲器/优化器,可以提高服务器上PHP的性能。


  • 可以通过将编译后的PHP数据,缓存到共享内存来避免重复编译过程

  • 并且可以直接使用缓冲区,来编译代码提高速度。

  • 它通常可以将页面生成速率提高2到5倍,并减少服务器负载。

实际上,XCache是PHP加速器扩展。


四、memcached


Memcached是一个高性能的分布式内存对象缓存系统:


  • 用于动态Web应用程序以减少数据库负载。

  • 它通过在内存中缓存数据和对象,来减少数据库读取的数量,从而提供动态的、数据库驱动的网站的速度。

从文字中可以理解到:内存缓存扩展,更多用于集群服务器,主要用于分布式缓存。


Memcached被认为是数据库缓存扩展。


五、Redis


Redis是一个高性能的key-value数据库。


Redis


  • redis的出现极大地弥补了memcached等,缺乏keyalue存储的问题。

  • 在某些情况下,它可以补充关系数据库。

  • 在许多情况下,Redis经常和memcached做比较。

很多人认为Redis可以完全取代memcached,因为Redis数据类型更丰富,性能不在memcached之下:


  • redis有的memcached却没有;

  • memcached有redis都有。

据我所知,新浪的微博和其他周边产品依赖于Redis,可以看出它功能强大。


PHP缓存、数据库缓存扩展区别


1)PHP缓存扩展:


  • eAccelerator、XCache是PHP缓存扩展。

2)数据库缓存扩展:


  • Redis、memcached、APC缓存是数据库缓存扩展。

(通常2者只需要安装其中1个就行了,不要贪心)


有人测试后,发现Cache数据缓存超过一定阈值,APC性能不如mcached缓存。


因此,在选择缓存扩展时,一些人会选择 xcache + memcached 的组合,或是xcache + redis 的组合。


如果在同时安装多个缓存扩展出现错误,建议只安装一个缓存扩展,其它的卸载。


PHP加速器比较总结


  • 通过测试,eAccelerator是请求时间和内存使用的最佳组合,但eAccelerator暂不支持PHP5.5以上的版本。

  • 通过测试,有使用加速器的速度,比没有加速器快3倍。

以上就是APC、eAccelerator、XCache、memcached、Redis之间的作用和区别。





欢迎转载《APC,eAccelerator,XCache,memcached,Redis的区别
陈沩亮版权所有,转载请注明出处链接:https://www.chenweiliang.com/cwl-940.html


网站地址:https://www.chenweiliang.com/



欲学更多秘技,请关注微信公众号:cwlboke

没有评论:

发表评论