rah*_*286 43 php performance cache wordpress memcached
我一直听说一些 PHP(操作码)缓存,如 APC、XCache、Memcache、eAccelerator 等。
但我无法弄清楚如何去选择一个。除了缓存系统应该提供的性能优势之外,还应该关注哪些其他因素。
比如为什么你会说X缓存系统比Y好?我不太担心相对性能提升。任何两个系统之间的微小差异都不重要。
如果对我的问题不可能有一个通用的答案,这里有一些提示。我使用带有 Mediatemple 的专用 VPS(具有 root 访问权限)。RAM 为 512 MB(物理)+ 400MB(交换)我担心 WordPress 及其表亲 WordPress-MU 和 BuddyPress。我们 90% 的代码/网站都属于 WordPress 家族。
在此先感谢您的帮助。
Sir*_*tan 32
您列出的产品有不同的用途。
操作码缓存
有许多 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。
小智 6
APC将内置到 PHP6 中,因此这是一个合乎逻辑的选择。我使用它,性能提升是惊人的。如果您需要缓存操作码以外的内容(即数据库查询结果),您也可以使用 APC,但无法在多个服务器之间共享 APC 缓存。如果您只需要在单台服务器上缓存,APC 非常棒。如果您需要扩展到多个服务器,并希望在它们之间共享缓存,那么memcached就是您的最佳选择。
不过,我会做的一件事是为您所做的任何(非操作码)缓存创建一个包装类。这样您就可以在不更改代码的情况下更换缓存引擎。
小智 6
请注意,事情发生了一些变化,似乎 APC 不会包含在 PHP 6 核心中。
APC 开发缓慢,看起来永远不会兼容 PHP 5.5。因此,看起来来自 PHP 的人将 Zend OPCache 操作码缓存扩展设置为 PHP CORE 扩展。你关心在这里阅读更多http://wiki.php.net/rfc/optimizerplus。
重要提示:Zend OPCache 没有像 APC 那样的用户数据缓存,所以如果你需要用户数据缓存,你可以和 Memcache 一起使用。