Php Memcached vs APC我应该选择哪一个?

Php Memcached vs APC我应该选择哪一个?,php,caching,memcached,apc,Php,Caching,Memcached,Apc,我读了这篇文章:很久以前。。我想得到最好的缓存引擎,这样我的应用程序就真的很快了。当然,我不想过度缓存,但我想至少选择最好的东西。在那篇文章中,它说Memcached很慢,而apc很快,那么为什么每个人都在选择呢 这里说的是“使用一个快速的(但有限的)像Apc,Memcache…和一个“慢速”像文件,Sqlite…”你认为使用Apc作为快速,使用Memcache作为慢速是一个好主意吗?Memcached如果你需要在多个web服务器上保持状态(如果您是负载平衡的,并且缓存中的内容对于所有服务器都是

我读了这篇文章:很久以前。。我想得到最好的缓存引擎,这样我的应用程序就真的很快了。当然,我不想过度缓存,但我想至少选择最好的东西。在那篇文章中,它说Memcached很慢,而apc很快,那么为什么每个人都在选择呢


这里说的是“使用一个快速的(但有限的)像Apc,Memcache…和一个“慢速”像文件,Sqlite…”你认为使用Apc作为快速,使用Memcache作为慢速是一个好主意吗?

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

APC,如果您只需要访问快速内存来读取(或写入)服务器上的数据


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

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

如果(且仅当)您的web应用程序必须位于不同的web服务器上(负载平衡),则必须使用memcache进行分布式缓存。 如果没有,只需使用APC及其缓存即可

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


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

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


我在这里有一个关于这个问题的条目:,您也应该阅读(我认为来自一位APC开发人员)

我使用其中一个用于提高速度,另一个用于同步我的所有服务器。如果您使用memcache,请记住需要使用iptables阻止的开放端口。

我只使用APC,因为APC是代码缓存,其作用类似于memcache!只有1个配置文件,而不是2个


只有一个地方可以监控两个缓存…

这取决于你在做什么,但对于运行在VPS上的drupal网站,我发现APC工作得很好!如果你运行CentOS 6,它可以作为一个yum更新提供,安装非常简单,没有配置,因为默认设置是合理的。这是一个不需要动脑筋的主意。

APC的主要建议是操作码由于PHP5.5将OpCache集成到其核心,PHP5.4的APC仍被标记为beta版,这不是官方公告,但APC的开发将在不久的将来停止


所以我建议你选择Memcached。

顺便说一句:即使你不使用
APC\u store,你也应该使用APC。
。光是操作码缓存就可以让PHP快上几倍。@porneL:你是什么意思?APC在安装之后会提高PHP的速度吗,即使我没有在脚本中添加代码缓存任何东西?@Marco Demaio:的确。APC主要是一个pHP optimizer(默认情况下,只要启用它就会进行优化),
apc_store()
只是一个额外的奖励。2014年,如果您只在一台服务器上使用它进行缓存,请选择APCu。我也偶然发现了这一点,并想更新它,它似乎已经被解决了(应该是,2年后!)。这里有一个封闭的bug报告,例如:惊人的答案+1。我现在的问题是
操作码
缓存是什么?@Karsten,如果您有不同的服务器(如云负载平衡环境)只要您不需要在它们之间维护/共享状态,APC也可以作为一个直接的内存缓存正常工作——尽管可能没有每个云实例都需要加热自己的缓存那么理想……一个
opcode
缓存是将普通PHP代码编译成机器代码(“opcode”)的缓存然后将其存储在编译后的表单中,以供将来的请求使用(直到它检测到原始PHP文件已更改)。这意味着PHP不必对每个请求都运行此编译步骤,从而节省了一些时间。这只是帮助确保网站快速运行的方法之一(在许多其他方法中)。这里有一个有趣的幻灯片,解释了与图表和基准测试的一些区别:Memeched可以在非分布式系统中使用而不是APC吗?如果将来有更多的机器,最好只保留一台。对吗?或者同时使用它们,一台用于操作码,另一台用于可扩展缓存?APC可以缓存stor年龄太大了……或者?2014年更新:PHP5.5本来就包括Zend Optimizer Plus(它只用于opcache,所以不用于用户缓存),似乎APC不会在PHP5.4之后开发?但是现在有了APCu,它只需要APCI的用户缓存部分就可以在web上花费数小时来考虑,我也有同样的结论。