我一直听到一些PHP(操作码)caching,如 – APC,XCache,Memcache,eAccelerator等
但我永远不知道如何去select一个。 除了caching系统应该提供的性能优势之外,还应该考虑哪些其他因素。
喜欢你为什么会说Xcaching系统比Y好? 我不太担心相对的性能收益。 任何两个系统之间的细微差别都不重要。
如果我的问题的一般答案是不可能的,这里有几个指针。 我使用Mediatemple的专用VPS(具有root权限)。 内存是512 MB(物理)+ 400MB(交换)我很担心WordPress和它的表兄弟WordPress-MU和BuddyPress。 我们的代码/网站中有90%属于WordPress系列。
在此先感谢您的帮助。
您列出的产品有不同的用途。
OPCodecaching
有许多PHP加速器(OPCaches)在这个维基百科清单上看到。 和开源产品一样,它们都很相似。 XCache是lighttp PHP加速器,是运行HTTPd时的默认select。 它也可以和Apache一起使用,不过APC似乎在社交上更像“与其他人一起玩”,作为PHP的一部分正式支持,并且正式与PHP发行版一起发布。
由于其发展速度放缓,我放弃了使用eAccelerator,并且落后于PHP的发布,以及APC提供的类似性能的官方地位。
这些产品通常在下降; 没有代码改变即时性能提升。 使用大型代码库(Drupal,Wordpress)时,性能可以提高3倍,同时降低响应时间和内存使用量。
数据caching
Memcache是一个稍微不同的产品 – 你可能把它看作是一个轻量级的键值系统 ,可以扩展到多个服务器 。 必须增强软件以支持Memcache,并且比其他解决scheme更好地解决某些问题。 如果您的网站上有实时股票价格列表,则可以使用Memcache来保留显示在您网站上的当前价值的常驻列表。 您可以使用它来存储会话数据以进行短期重用。 你不会把它用于其他的东西,比如整页caching,或者作为MySQL的替代品。
还有一些WordPress的插件,比如WP-Super-Cache ,可以大大提高Wordpress的性能(事实上,在许多情况下,WP-Super-Cache可以和基于静态HTML的网站相媲美)
总之 – 如果你想要“设置并忘记它,支持好的产品”,我会强烈推荐APC。
一个很好的答案发布在stackoverflow很好地回答你的问题。
APC将被构build到PHP6中,所以这是一个合理的select。 我使用它,性能提升是惊人的。 如果需要caching操作码以外的数据(例如数据库查询结果),那么也可以使用APC,但不能在多个服务器之间共享APCcaching。 如果你只需要在一台服务器上caching,APC是好的。 如果您需要扩展到多个服务器,并且想在它们之间共享caching,则memcached是您的人。
但是我要做的一件事就是为任何(非操作码)caching创build一个包装类。 这样你可以在不更改代码的情况下更换caching引擎。
只是要注意事情已经发生了一些变化,似乎APC将不会包含在PHP 6核心中。
APC发展缓慢,看起来不会是PHP 5.5兼容。 因此,看起来来自PHP的人将把Zend OPCache操作码caching扩展设置为PHP CORE扩展。 你在乎http://wiki.php.net/rfc/optimizerplus 。
重要提示:Zend OPCache没有像APC那样的用户数据caching,所以如果你需要用户数据caching,你可以和Memcache一起使用。
如果运行PHP版本至less5.50,OpCache是你最好的select(PHP / PECL本地库)。 它应该来预编译,如果从二进制安装。
http://php.net/manual/en/book.opcache.php
如果运行5.5以前的PHP版本,APC(PHP / PECL原生OpCodecaching)将是最简单的select,虽然它被认为是没有维护和死亡的:
http://php.net/manual/en/book.apc.php
使用PHP的本地OpCachefunction可以节省维护第三方库的麻烦。
Memcachecaching键/值对,而不是操作码。 您可以将它与其中一个操作码caching结合使用。