Memcached 和 APC 我应该选择哪一个?

我读过这篇文章: http://www.mysqlperformanceblog.com/2006/09/27/apc-or-memcached/从很久以前开始。.我想得到最好的缓存引擎可用,以便我的应用程序是真正的快速。当然,我不想过度缓存,但我想至少选择最好的东西。在那篇文章中,它说 Memcached 是慢的,apc 是快的,那么为什么每个人都选择 Memcached

Http://framework.zend.com/manual/en/zend.cache.backends.html#zend.cache.backends.twolevels 这里说“使用一个快速的(但有限的)如 Apc,Memcache... 和一个“慢”的像文件,Sqlite... “你认为使用 Apc 作为快速和 Memcache 作为慢是一个好主意吗?

102074 次浏览

如果需要在多个 Web 服务器上保持状态(如果负载平衡,并且缓存中的内容对所有服务器都是相同的,这一点很重要) ,可以使用 Memcached。

如果您只是需要访问快速内存来在(或每个)服务器上读(或写) APC。

记住,APC 也可以编译并加快脚本的执行时间。例如,可以使用 APC 提高执行性能,同时使用 memcached 进行缓存。

Memcached 是一个分布式缓存系统,而 APC 是非分布式的——主要是一个操作码缓存。

如果(并且只有当)你有一个 Web 应用程序必须生活在不同的 Web 服务器上(负载平衡) ,你必须使用 memcache 进行分布式缓存。 如果没有,只要坚持 APC 及其缓存。

您应该始终使用一个操作码缓存,它就是 APC (APC 也将集成到 php6 iirc 中,所以为什么不现在就开始使用它呢)。

您可以/应该将两者用于不同的目的。

嘿 Thomaschaaf,我希望这个工具对你来说不会太晚,但是请注意 APC 有一些与“用户缓存”相关的问题。长话短说,当您为缓存条目设置超时时,或者如果您的 apache 在内部 APC 代码中崩溃(例如,超时) ,那么您可能会遇到一些问题。

我在这里有一个关于这个问题的条目: http://nirlevy.blogspot.com/2009/06/apc-futexwait-lockdown-make-your-apache.html,您还应该阅读 http://t3.dotgnu.info/blog/php/user-cache-timebomb.html(我认为来自一个 APC 开发人员)

我用一个来提高速度,另一个来同步我所有的服务器。如果您确实使用 memcache,那么请记住需要用 iptables 阻塞的打开端口。

我只使用 APC,因为 APC 是一个代码缓存,并像 memcache!只有1个配置文件,而不是2个。

只有一个地方可以同时监控两个缓存... ..。

这取决于你在做什么,但我的 Drupal 网站上运行的 VPS 我发现 APC 工程伟大!如果你正在运行 CentOS6,它可以作为一个 yum 更新,非常容易安装,没有配置,因为默认设置是合理的。不费吹灰之力。

APC 的主要优点是操作码缓存。由于 PHP 5.5将 OpCache 集成到了它的核心,而且 PHP 5.4的 APC 仍然被标记为 beta 版,所以这并不是正式的声明,但是 APC 的开发将在不久的将来被放弃。

所以我建议你选择 Memcached。