it-swarm.cn

应该使用哪个PHP(操作码)缓存,为什么?

我不断听到一些PHP(opcode)缓存-APC,XCache,Memcache,eAccelerator等)。

但是我永远无法弄清楚如何选择一个。除了性能优势(缓存系统应该提供的性能优势)之外,其他因素也应引起关注。

就像为什么您会说X缓存系统胜于Y?我不太担心相对性能的提高。任何两个系统之间的细微差别都不会产生太大的影响。

如果无法对我的问题有一个通用的答案,那么这里没有几个提示。我将专用VPS与Mediatemple一起使用(具有root访问权限)。 RAM 512 MB(物理)+ 400MB(交换),我担心WordPress及其表亲WordPress-MU和BuddyPress。我们90%的代码/网站属于WordPress家庭。

在此先感谢您的帮助。

44
rahul286

您列出的产品有不同的用途。

OPCode缓存

有很多PHP加速器(OPCaches),在此 Wikipedia列表 。与开源产品一样,它们都很相似。XCache是​​lighttp = PHP加速器,并且是运行该HTTPd时的默认选择。它也与Apache兼容,但是从社交角度看,APC似乎在“与其他人打交道”方面得到了官方支持作为PHP的一部分,并与官方PHP发行版)一起逐步发布。

我放弃了usign eAccelerator,因为它的开发速度缓慢,并且与PHP的发布相比有所滞后,而APC所提供的官方加持状态具有类似的性能。

这些产品通常都可以买到。无需更改代码即可立即提高性能。使用大型代码库(Drupal,Wordpress),性能可以达到 提高3倍 ,同时降低了响应时间和内存使用率。

数据缓存

Memcache是一个略有不同的产品-您可能会认为它是轻量级键值系统可以缩放到多个服务器。必须增强软件以支持Memcache,并且它可以比其他方法更好地解决某些问题。如果您的网站上有一个实时股票价值列表,则可以使用Memcache保留一个在整个网站上显示的当前价值的居民列表。您可以使用它来存储会话数据以供短期重用。您不会将其用于诸如全页缓存之类的其他事情,也不会替代MySQL。

还有Wordpress诸如 WP-Super-Cache =的插件)可以大大提高Wordpress的性能(事实上,WP-Super-Cache可以与基于静态HTML的网站竞争)很多情况下)

总而言之,我强烈建议APC如果您想要“设置好它,忘记它,受支持的产品”。

33
SirStan

一个很好的答案发布在stackoverflow上,它很好地回答了您的问题。

https://stackoverflow.com/questions/28716/which-php-opcode-cacher-should-i-use-to-provprove-performance

8
The Pixel Developer

只是要注意,情况已经发生了一些变化,并且似乎APC不会包含在PHP 6核心)中。

APC的开发速度很慢,而且看起来永远不会PHP 5.5兼容。因此,看起来PHP扩展名= PHP CORE扩展名。您可以在这里阅读更多内容 http://wiki.php.net/rfc/optimizerplus

重要说明:Zend OPCache没有像APC这样的用户数据缓存,因此,如果需要用户数据缓存,可以将其与Memcache一起使用。

6
Nemke

[〜#〜] apc [〜#〜]将内置到PHP6中,因此这是一个合理的选择。我使用它,性能提升非常惊人。如果您需要缓存操作码以外的其他内容(即db查询结果),也可以使用APC,但是不可能在多个服务器之间共享APC缓存。如果只需要在单个服务器上缓存,那么APC很棒。如果您需要扩展到多个服务器,并希望在它们之间共享缓存,则memcached是您的理想选择。

不过,我要做的一件事就是为您执行的所有(非操作码)缓存创建一个包装类。这样,您可以换出缓存引擎而无需更改代码。

6
lo_fye

如果运行PHP版本至少为5.50),OpCache是​​最好的选择(PHP/PECL本机库)。如果从二进制安装,则应预先编译。

http://php.net/manual/zh/book.opcache.php

如果运行PHP 5.5之前的版本),则APC(PHP/PECL原生OpCode缓存)将是最简单的选择,尽管它被认为是未维护且已失效:

http://php.net/manual/zh/book.apc.php

使用PHP)的本机OpCache功能应为您节省维护第三方库的麻烦。

3
recurse

Memcache缓存键/值对,而不是操作码。您可以将其与操作码缓存之一结合使用。

0
user10699