【发布时间】:2009-12-20 08:27:01
【问题描述】:
我正在使用 memcache 来缓存对象,但想另外添加一个操作码加速器,如 APC。由于它们都涉及缓存,我不确定它们是否会“互相踩脚”,即我不确定 memcache 是否已经是一个 OP 代码加速器。
有人可以澄清一下吗?我想同时使用它们 - 用于不同的事情。 memcache 用于缓存我的对象和 APC 用于代码加速
【问题讨论】:
我正在使用 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 并行运行它的原因
【讨论】:
是的,您可以同时使用它们。
【讨论】: