【问题标题】:Clarification needed on Alternative PHP Cache需要澄清替代 PHP 缓存
【发布时间】:2012-01-04 04:09:04
【问题描述】:

我正在使用 Alternative PHP Cache APC,但我无法找到一些问题的答案。

  1. 如果文件已被 APC 自动或通过 apc_compile_file() 隐式加载到字节码缓存中,php 函数 include 是否知道这一点?是否在需要文件而不是从磁盘访问文件时使用缓存?
  2. 如果是这样,我该如何测试它,看看它是否有效?显示光盘上的文件未被访问的东西就足够了。
  3. 自动加载到 APC 系统缓存中的一些文件只是纯 html 文件,或 99% 的 html,带有一些 php 变量(模板文件)。它们在 APC 缓存中占用的空间不多,但有没有办法排除文件或整个文件夹?告诉 APC 甚至不要考虑加载它们?
  4. 我一直使用 SQLite 或 Redis 数据库作为会话保存处理程序后端,具体取决于项目。在同一个项目中同时使用 APC 和 Redis 通常没有意义。您如何看待将会话数据保存在 APC 中?

谢谢,

【问题讨论】:

    标签: php caching apc


    【解决方案1】:

    对于 1 和 2,我没有证据,但我相信包含的文件也已完成缓存。否则它将毫无意义。存在具有单个入口点的巨大应用程序,以及包含在各个级别的其他文件。你不觉得所有这些应用都不能使用 APC 吗?

    对于纯 html 文件,我建议您使用 readfile() 而不是 include(),因此根本不涉及缓存。

    对于带有一些 php 变量的文件(模板文件),您必须将它们保存在缓存中,因为缓存的整个点就是跳过解析部分。否则你会让 PHP 一直解析这些文件,我相信这不是你想要的。

    您可以使用 APC 来存储会话。我不知道它是否更好。试试看哪个更适合你。我相信没有严格的标准。

    【讨论】:

      【解决方案2】:
      1. 根据apc.stat 指令,在从内存中检索文件的操作码之前,php 将检查文件是否已被修改(仅请求 stat,不读取内容)
      2. 您可以将apc.stat 设置为0。包括一些文件,删除它,什么都不会发生。该脚本应该可以工作,因为该文件尚未被删除
      3. 是的,使用apc.filters
      4. 可能会快一点,但 APC 只是一个缓存,所以它不能保证数据会在它应该存在的任何特定时刻存在

      【讨论】:

      • @Col。弹片:你为什么不在Skype上给我打个电话? :-)
      • 只是觉得在同一个半球遇到同一个问题有点有趣!
      猜你喜欢
      • 2012-10-22
      • 2011-07-24
      • 2011-11-09
      • 2012-07-18
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多