1

在 symfony 中使用 php_apc 时会出现各种问题,

如果提升不是那么显着,我将用 memcached 替换 apc。

4

2 回答 2

8

APC 和 memcached 不是一回事:


首先,APC 有两个角色:

  • 它是一个操作码缓存(这意味着每个 PHP 页面通常需要更少的 CPU,因为它删除了“编译”部分;我们第一次启用 APC 作为操作码缓存时,我们网络服务器上的 CPU 负载从大约 80% 变成了大约40-50%)
  • 它也是一个非分布式数据缓存
    • 这意味着,如果您有多台服务器,则每台服务器都有缓存的本地副本
    • 这也意味着您可以存储在缓存中的数据量非常低


对于 memcached :

  • 它只是一个数据缓存
  • 已分发
    • 即对memcached集群中的服务器数量没有限制
    • 即你可以拥有的缓存数量没有限制


您可以使用 APC 或 memcached,或两者都使用作为数据缓存(这就是我们在我目前正在处理的项目中所做的:一些数据缓存在 APC 中,而另一些则使用 memcached)

但是,如果您想要一些操作码缓存,则必须使用 APC (或 eAccelerator ;但不确定它是否维护良好)

于 2010-02-19T05:51:18.853 回答
4

请看这个:)

Memcached 是一个分布式缓存系统,而 APC 是非分布式的 - 主要是一个操作码缓存。

如果(且仅当)您的 Web 应用程序必须存在于不同的 Web 服务器上(负载平衡),您必须使用 memcache 进行分布式缓存。如果没有,请坚持使用 APC 及其缓存。

您应该始终使用操作码缓存,即 APC(APC 也将集成到 php6 iirc 中,所以为什么不现在开始使用它)。

您可以/应该将两者用于不同的目的。

于 2010-02-19T05:43:48.340 回答