我正在使用memcache来缓存对象,但是想添加像APC这样的操作码加速器。由于它们都涉及缓存,我不确定它们是否会“踩到彼此的脚趾”,即我不确定memcache是否已经是OP代码加速器。
有人可以澄清吗?我想将它们用于两者 - 用于不同的事情。用于缓存我的对象的memcache和用于代码加速的APC
答案 0 :(得分:19)
Memcache更像是分布式对象缓存,而不是APC或XCache,它将PHP字节码存储在内存中,因此您不必每次都解析它。他们的主要目的是不同的。
例如,如果您有一个人们经常请求的CPU密集型数据库查询,您可以将结果对象缓存在内存缓存中,然后引用它而不是一直重新运行该查询。
APC& XCache确实具有类似的对象缓存功能,但您仅限于主机。如果您希望10个不同的服务器都可以访问该对象而无需为每个服务器重新执行查询,该怎么办?你只需将它们引导到你的memcache服务器就可以了。如果你只有一台服务器,你仍然可以获得好处,因为如果你需要分支到更多的盒子,使用memcache将来会帮助你扩展。
要考虑的主要事项是您认为您的应用需要扩展。 Memcache有更多的开销,因为你必须使用TCP连接来访问它,而不仅仅是对APC / Xcache共享对象的函数调用。
然而,Memcache有以下好处:
在大多数情况下,我建议在memcache中缓存你的对象,因为它并不困难。对未来更加灵活。
请注意,这是关于缓存对象的 。 Memcache NOT 有任何字节码或PHP加速功能,这就是我与APC或Xcache并行运行的原因
答案 1 :(得分:4)
是的,你可以同时使用它们。