我正在使用memcache进行对象缓存,但是我想增加一个类似APC的opcode加速器。由于它们都涉及缓存,我不确定它们是否会互相干扰,即我不确定memcache是否已经是一个OP代码加速器。
有人能澄清一下吗?我想同时使用它们 - memcache用于缓存我的对象,而APC用于代码加速。
有人能澄清一下吗?我想同时使用它们 - memcache用于缓存我的对象,而APC用于代码加速。
Memcache更像是分布式对象缓存,而不像APC或XCache那样将PHP字节码存储在内存中以避免每次解析。它们的主要目的不同。
例如,如果您有一个非常耗费CPU的数据库查询,人们经常请求该查询,您可以将结果对象缓存到memcache中,然后引用它,而不是每次重新运行该查询。
APC和XCache确实具有类似的对象缓存功能,但受限于主机机器。如果您想让10个不同的服务器都能访问那个对象,而无需为每个服务器重新执行查询怎么办?您只需将它们指向您的memcache服务器即可。如果仅有一个服务器,仍然会获得好处,因为使用memcache将帮助您在未来进行扩展,以便需要扩展到更多设备。
主要问题在于您是否认为您的应用程序需要扩展。与APC / Xcache共享对象相比,由于必须使用TCP连接访问它,因此Memcache具有更多开销。
然而,Memcache具有以下优点:
在大多数情况下,我建议将对象缓存在memcache中,因为它并不比其他方法更难,并且对未来更具灵活性。
请记住,这仅涉及缓存对象。Memcache没有任何字节码或PHP加速功能,这就是为什么我会将其与APC或XCache一起运行的原因。