我正在使用memcache来缓存对象,但是我想另外添加一个像APC这样的操作码加速器。由于它们都涉及缓存,我不确定它们是否会“互相踩脚趾”,也就是说,我不确定memcache是否已经是一个操作码加速器。
有人能澄清一下吗?我想把它们都用在不同的东西上。memcache用于缓存我的对象,APC用于代码加速
发布于 2009-12-20 16:30:02
是的,你可以同时使用它们。
发布于 2009-12-20 16:38:15
Memcache更像是分布式对象缓存,而不是APC或XCache,后者将PHP字节码存储在内存中,因此您不必每次都对其进行解析。它们的主要目的是不同的。
例如,如果您有一个人们经常请求的CPU密集型数据库查询,您可以将结果对象缓存在memcache中,然后引用它,而不是一直重新运行该查询。
APC和XCache确实有类似的对象缓存特性,但您仅限于主机。如果您希望10个不同的服务器都可以访问该对象,而不必为每个服务器重新执行查询,该怎么办?您只需将它们定向到您的memcache服务器,然后就可以离开了。如果您只有一台服务器,您仍然可以获得好处,因为如果您需要扩展到更多的服务器,使用memcache将有助于您在将来进行扩展。
要考虑的主要问题是,如果您认为您的应用程序将需要扩展。Memcache有更多的开销,因为您必须使用TCP连接来访问它,而不是仅仅通过函数调用来访问APC/Xcache共享对象。
但是,Memcache有以下优点:
在大多数情况下,我建议在memcache中缓存您的对象,因为它不会太难,而且将来会更灵活。
请记住,关于缓存对象,这只是的。Memcache没有任何字节码或加速特性,这就是为什么我会将它与APC或Xcache并排运行。
https://stackoverflow.com/questions/1935240
复制相似问题