忽略使用APC缓存特定文件

时间:2010-10-31 01:08:11

标签: php caching apc opcode

有没有办法防止特定文件被APC缓存为操作码?用例如下:

位于云上的应用程序,可动态调整自身大小(根据需要自动调整服务器)。 config.php脚本必须知道新IP可用或不可用。

由于这些更改经常发生,并且config.php文件非常基本,因此不必担心仅针对一个文件清除APC。

清除APC中的一个文件肯定是可能的,但由于您无法通过命令行访问APC,因此解决方案最终会变得不那么优雅。

3 个答案:

答案 0 :(得分:2)

我有一个类似的用例。我多次问过同样的问题,但我找不到解决办法。但是,我的解决方案是创建一个快速脚本,负责清除每个服务器的APC缓存。每次重建应用程序时,我都需要点击每个服务器上的文件以使用apc_clear_cache清除操作码缓存如果您只需要清除一个文件,那么apc_compile_file

希望这有帮助。

答案 1 :(得分:1)

我不知道如何做你所建议的方式,但你应该能够绕过它。

显而易见的解决方案是不将数据存储在php文件中。既然你已经有了APC,为什么不把配置数据保存在APC中(作为缓存数据,而不是操作码)。

所以无论修改config.php,现在都会这样做:

  1. 修改一些非php文件(something.ini或类似的东西)
  2. 使APC缓存条目无效。
  3. 当config.php需要数据时,它通常会从缓存中读取。如果缓存已失效,它将读取/解析ini文件中的数据,更新缓存,并照常继续。

    在一天结束时,您正在使用操作码缓存来缓存数据。您应该使用数据缓存。幸运的是,APC提供了两者。

答案 2 :(得分:1)

是。你应该看看apc.filter配置指令。 Another Question | PHP Docs