php_apc比memcached更有效率?

时间:2010-02-19 05:42:34

标签: php memcached apc

将php_apc与symfony一起使用时存在各种问题,

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

2 个答案:

答案 0 :(得分:8)

APC和memcached不是一回事:


最重要的是,APC有两个角色:

  • 这是一个操作码缓存(这意味着每个PHP页面通常需要更少的CPU,因为它删除了“编译”部分;我们第一次启用APC作为操作码缓存时,我们的Web服务器上的CPU负载来自某事物像80%到40-50%之类的东西
  • 它也是一个非分布式数据缓存
    • 表示,如果您有多台服务器,则每台服务器都有一个缓存的本地副本
    • 这也意味着您可以在缓存中存储的数据量存在相当低的限制


对于memcached:

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


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

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

答案 1 :(得分:4)

<强> See this please :)

  

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

     

如果(且仅当)您有网络   必须依赖的申请   不同的Web服务器(负载均衡),   你必须使用memcache   分布式缓存。如果没有,只是   坚持使用APC及其缓存。

     

您应该始终使用操作码缓存,   APC是哪个(也是APC会得到的)   集成到php6 iirc中,为什么不呢   现在开始使用它。)

     

你可以/应该同时使用两者   目的。