163

我从很久以前读过这篇文章: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 ...... “慢”一个,比如 File、Sqlite……”你认为使用 Apc 作为快速而 Memcache 作为慢速是一个好主意吗?

4

7 回答 7

274

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

如果(且仅当)您的 Web 应用程序必须存在于不同的 Web 服务器上(负载平衡),您必须使用 memcache 进行分布式缓存。如果没有,请坚持使用 APC 及其缓存。

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

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

于 2009-05-02T15:33:50.640 回答
44

Memcached 如果您需要跨多个 Web 服务器保留状态(如果您是负载平衡的并且重要的是缓存中的内容对于所有服务器都是相同的)。

如果您只需要访问快速内存以在(或每个)服务器上读取(和写入),APC。

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

于 2009-05-02T15:33:44.837 回答
20

The main advatage of APC is opcode cache. Since PHP 5.5 integrated OpCache to its core and APC for PHP 5.4 is still flagged as beta, it's not official annoucement, but the development of APC would be dropped in near future.

So I would recommend you to choose Memcached.

于 2014-01-07T04:06:44.127 回答
9

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

于 2012-03-22T00:32:15.700 回答
6

嘿 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 开发人员之一)

于 2009-08-04T07:39:08.147 回答
1

这取决于你在做什么,但对于我在 VPS 上运行的 drupal 网站,我发现 APC 工作得很好!如果您运行的是 CentOS 6,它可以作为 yum 更新使用,安装起来非常简单,并且没有配置,因为默认值是合理的。恕我直言。

于 2013-03-02T19:45:43.463 回答
1

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

并且只有 1 个地方可以监控两个缓存.....

于 2012-04-21T12:37:35.050 回答