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