【问题标题】:How much more efficient is php_apc than memcached?php_apc 比 memcached 效率高多少?
【发布时间】:2011-01-18 15:43:29
【问题描述】:

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

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

【问题讨论】:

    标签: php memcached apc


    【解决方案1】:

    APC 和 memcached 不是一回事:


    首先,APC 有两个角色:

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


    而对于 memcached:

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


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

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

    【讨论】:

    • PHP和apc分别是什么版本?
    • 几乎是 PHP 5.2 的最后一个“稳定”版本(即类似 5.2.9 或 5.2.10),以及 APC 的最后一个“稳定”版本 (即3.0.19)
    • 听说apc用PHP5.2稳定,但是我已经在用PHP5.3了,apc版本是3.1.3.0,好像有bug
    • 考虑到 APC 3.1.x 仍处于测试阶段,它可能会;你检查过它的错误跟踪器(pecl.php.net/bugs/…)吗?您是否尝试从 SVN (svn.php.net/viewvc/pecl/apc) 获取最新版本 - 不确定它是否会有所帮助,但谁知道?
    【解决方案2】:

    See this please :)

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

    如果(且仅当)您有网络 必须生存的应用程序 不同的网络服务器(负载平衡), 你必须使用内存缓存 分布式缓存。如果没有,只是 坚持使用 APC 及其缓存。

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

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

    【讨论】:

    • @user198729: 那么你应该去memecache :) 顺便说一句,已经有大应用程序在使用 apc。
    • @user198729 你能记录下你的评论吗?因为几乎每个 php 服务器都使用 APC 作为操作码缓存系统而没有问题。 (是的,我知道你是在 2010 年 2 月发布的,但我已经使用了很长时间)。
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2014-11-24
    • 2022-06-16
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多