我读了这篇文章: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 ......和a "慢"一个像File,Sqlite ......"你认为使用Apc作为快速和Memcache,因为慢是一个好主意?
Memcached是一个分布式缓存系统,而APC是非分布式的 - 主要是操作码缓存.
如果(并且仅当)您有一个必须在不同的Web服务器(负载平衡)上运行的Web应用程序,您必须使用memcache进行分布式缓存.如果没有,只需坚持APC及其缓存.
你应该总是使用一个操作码缓存,这是APC(也是APC将集成到php6 iirc中,所以为什么不立即开始使用它).
您可以/应该将它们用于不同的目的.
Memcached,如果您需要在多个Web服务器上保留状态(如果您负载均衡,并且重要的是缓存中的内容对于所有服务器都是相同的).
如果您只需要访问快速内存以在(或每个)服务器上读取(和写入),则APC.
请记住,APC还可以编译并加快脚本执行时间.因此,您可以使用APC来提高执行性能,同时使用memcached进行缓存存储.
APC的主要优点是操作码缓存.由于PHP 5.5将OpCache集成到其核心,而用于PHP 5.4的APC仍被标记为测试版,因此它不是官方公告,但APC的开发将在不久的将来被删除.
所以我建议你选择Memcached.
我使用一个用于速度,另一个用于同步我的所有服务器.如果你确实使用了memcache,那么请记住你需要用iptables阻止的开放端口.
嘿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开发人员)