【问题标题】:Selecting an appropriate cache mechanism选择合适的缓存机制
【发布时间】:2011-01-22 02:52:29
【问题描述】:

我的设置:

  • 4 个网络服务器
  • 静态内容服务器(NFS 挂载)
  • 2 个数据库服务器
  • 2 个“变魔术”服务器
  • 另外 8 台指定为多用途机器。

我正在为三种缓存机制编写一个包装器,以便它们可以以某种标准化的方式使用:文件系统、Memcached 和 APC。我正在尝试提出使用示例(以及实际放入每个缓存中的内容)。

文件系统

处理我们生成然后静态提供的内容。 RSS 提要、旧报告数据、用户特定页面等...这些都缓存到静态服务器。

内存缓存

PHP 会话数据、MySQL 查询结果,通常是需要在我们的系统中可用的东西。我们有 8 台机器可以包含在服务器池中。

APC

我不知道。这两个“做魔术”服务器不是任何分布式系统的一部分,因此它们似乎可以在 APC 中缓存查询结果并从那里工作。过去,我什么都想不出来。

查询缓存

鉴于我们使用 SQL 的性质,查询缓存会降低性能。我已禁用此功能。

一般来说,什么类型的数据应该存储在哪里?这种设置是否有意义?

分布式系统中的 APC 数据缓存有什么用(我想不出)?

有什么我遗漏的东西可以让事情变得更容易或更高效吗?

编辑:我终于明白帕斯卡在说什么了。我一直在想,我只会将我的一部分配置/任何东西移动到 APC,并且仍然从磁盘加载文件的其余部分。还有其他建议吗?

【问题讨论】:

    标签: php caching memcached apc


    【解决方案1】:

    我在一些项目中使用了相同的缓存机制;我们使用 APC + memcached 作为缓存系统。

    在缓存数据方面,APC 和 memcached 有两/三个主要区别:

    • APC 访问速度要快一点(如果我没记错的话,大约比 memcached 快 5 倍),因为它只是本地的——即不涉及网络。
    • 使用 APC,您的缓存会在每台服务器上复制;使用 memcached,跨服务器没有重复
      • 这意味着 memcached 确保所有服务器具有相同版本的数据;而存储在 APC 中的数据在每台服务器上可能不同


    我们一般使用:

    • 用于必须经常访问的数据的 APC,生成速度快,并且:
      • 两者都不经常修改
      • 或者如果它在所有服务器上都不相同也没关系
    • memcached 用于生成需要更多时间和/或使用较少的数据。
      • 或者对于修改必须立即可见的数据(即,当对 DB 进行写入时,缓存条目也会重新生成)

    例如,我们可以:

    • 使用 APC 存储配置变量:
      • 不要经常更换
      • 经常访问
      • 很小
    • 将 memcached 用于文章内容(例如,对于 CMS 应用程序)
      • 不是那么小,而且数量很多,这意味着它可能需要比我们单独在一台服务器上更多的内存
      • 很难/很难生成


    一些旁注:

    • 如果多台服务器尝试写入通过 NFS 共享的同一个文件,则可能会出现问题,因为 NFS 上没有锁定机制(据我所知)
    • APC 可以用来缓存数据,是的——但使用它的最重要原因是它的操作码缓存功能(可以在 PHP 服务器上节省大量 CPU)
    • memcached 中的条目大小有限:您不能存储大于 1M 的条目(我有时会遇到这个问题 - 很少,但一旦发生就不好了^^)

    【讨论】:

    • 谢谢。不过,您能否提供更多关于 APC 中缓存的信息?您如何处理跨网络服务器的数据过期?似乎这可能是一种痛苦。 (也许我对“配置数据”的看法与您所描述的不同。。)您所描述的项目正是我想使用 APC 缓存的原因如果可能
    • 您无需处理跨服务器的数据过期问题:通常,对于您要存储的数据类型,如果所有服务器上的版本不同,则无关紧要
    • 是的,这是有道理的,但是...... 什么样的数据对存储有用。你给出的例子让我想到了在 APC 中缓存没有用的东西。
    • 数据的种类取决于你的应用程序;;;但我想说,翻译字符串和几乎从不改变的配置是两个不错的选择。
    猜你喜欢
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2017-08-12
    • 2020-01-25
    相关资源
    最近更新 更多