首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在同一台服务器上使用APC和memcached吗?

我可以在同一台服务器上使用APC和memcached吗?
EN

Stack Overflow用户
提问于 2009-12-20 16:27:02
回答 2查看 5.6K关注 0票数 7

我正在使用memcache来缓存对象,但是我想另外添加一个像APC这样的操作码加速器。由于它们都涉及缓存,我不确定它们是否会“互相踩脚趾”,也就是说,我不确定memcache是否已经是一个操作码加速器。

有人能澄清一下吗?我想把它们都用在不同的东西上。memcache用于缓存我的对象,APC用于代码加速

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-20 16:30:02

是的,你可以同时使用它们。

票数 4
EN

Stack Overflow用户

发布于 2009-12-20 16:38:15

Memcache更像是分布式对象缓存,而不是APC或XCache,后者将PHP字节码存储在内存中,因此您不必每次都对其进行解析。它们的主要目的是不同的。

例如,如果您有一个人们经常请求的CPU密集型数据库查询,您可以将结果对象缓存在memcache中,然后引用它,而不是一直重新运行该查询。

APC和XCache确实有类似的对象缓存特性,但您仅限于主机。如果您希望10个不同的服务器都可以访问该对象,而不必为每个服务器重新执行查询,该怎么办?您只需将它们定向到您的memcache服务器,然后就可以离开了。如果您只有一台服务器,您仍然可以获得好处,因为如果您需要扩展到更多的服务器,使用memcache将有助于您在将来进行扩展。

要考虑的主要问题是,如果您认为您的应用程序将需要扩展。Memcache有更多的开销,因为您必须使用TCP连接来访问它,而不是仅仅通过函数调用来访问APC/Xcache共享对象。

但是,Memcache有以下优点:

  • 比磁盘或重新运行查询更快。
  • 可扩展到多个服务器。
  • 适用于许多不同的语言,您的对象不仅仅锁定在PHP + APC/Xcache中。
  • 所有进程/语言都可以访问相同的对象,因此您不必担心您的PHP子进程是否有空的对象缓存。不过,如果你运行的是PHP-FPM,这可能不是什么大问题。

在大多数情况下,我建议在memcache中缓存您的对象,因为它不会太难,而且将来会更灵活。

请记住,关于缓存对象,这只是。Memcache没有任何字节码或加速特性,这就是为什么我会将它与APC或Xcache并排运行。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1935240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档