【问题标题】:What should I use for caching?我应该使用什么进行缓存?
【发布时间】:2013-06-02 00:37:24
【问题描述】:

我正在使用 Yii 框架开发一个应用程序。应用程序将具有多个服务器配置。我阅读了有关 Memcache 和 APC 的信息。

你能告诉我在 APC 和 Memcache 之间什么更适合 Yii 吗?

【问题讨论】:

    标签: php yii memcached apc


    【解决方案1】:

    虽然 APC 和 Memcache 用于不同的目的,但您应该同时使用。由于您有多个服务器,memcache 将有助于跨服务器缓存和维护用户数据状态,而 APC 将有助于加快脚本执行时间。

    APC 将纯 PHP 代码编译成机器码并保存,以便在以后的所有请求中,可以节省编译时间。这里的链接可以让你了解如何在 Yii 中使用它 - http://www.yiiframework.com/wiki/312/getting-the-most-out-of-apc-for-yii/

    【讨论】:

    • ..谢谢..我也在同一个页面上..决定同时使用。
    【解决方案2】:

    正如其他人所说,APC 用于两个目的:操作码缓存和用户变量缓存。自 PHP 5.5 起,OpCache 默认开启,比 APC 更优化;因此,OpCache 将用于 OpCode 缓存。 如果您想将 APC 用于使用 PHP 5.5 的应用程序,则应仅将 APCu 用于用户变量缓存。

    MemCache 与 APC 一样用于变量缓存,但是当您计划扩展应用程序时,优势就来了。如果你要部署1台以上的PHP应用服务器【水平扩展】,并且如果你没有使用数据库进行PHP Session Management,那么如果你使用APC进行缓存,会有很多你不知道的问题您的代码所在的 APC 服务器。而 MemCache 是分布式缓存引擎,即即使您部署了多个 MemCache 服务器,但 MemCache 仍然可以将其作为缓存数据的位置。

    【讨论】:

      【解决方案3】:

      APC 用于操作码,但 Memcache 仅用于应用程序缓存,例如缓存数据库。

      【讨论】:

        【解决方案4】:

        APCu 不与其他服务器共享缓存,但速度更快。

        内存缓存 可以与其他服务器共享,速度较慢。

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

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

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

        如果您有 2 个或更多 Web 服务器 (apache/nginx) 用于同一个 Drupal 站点,您将需要 Memcached。如果您在单台机器上运行,那么 APCu 将是最快的。 无论如何,您都希望打开 OPcache。

        参见:

        Memcached vs APC which one should I choose? https://drupal.stackexchange.com/questions/117932/difference-between-apc-memcached-and-how-both-can-be-used-for-cache-bins

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-23
          • 2010-11-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-12
          • 2011-04-25
          相关资源
          最近更新 更多