1

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

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

由于这些更改发生得足够频繁,而且 config.php 文件相当基本,因此不必担心只为一个文件清除 APC 是理想的。

从 APC 中清除一个文件绝对是一种可能,但由于您无法通过命令行访问 APC,因此该解决方案最终变得相当不雅。

4

3 回答 3

2

我有一个类似的用例。我已经多次问过自己同样的问题,但我一直无法找到解决方案。但是,我的解决方案是创建一个快速脚本,负责清除每个服务器的 APC 缓存。每次我重建应用程序时,我都需要在每台服务器上点击文件以清除操作码缓存,apc_clear_cache 如果你只需要清除一个文件,你可能会更好apc_compile_file

希望这可以帮助。

于 2010-10-31T01:20:34.903 回答
1

我不知道有什么方法可以按照您的建议进行操作,但是您应该能够围绕它设计自己的方式。

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

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

  1. 修改一些非php文件(something.ini,或类似的东西)
  2. 使 APC 缓存条目无效。

当 config.php 需要数据时,它通常会从缓存中读取。如果缓存已失效,它会从 ini 文件中读取/解析数据,更新缓存,然后照常进行。

归根结底,您正在使用操作码缓存来缓存数据。您应该改用数据缓存。幸运的是,APC 两者都提供。

于 2010-10-31T02:41:07.550 回答
1

是的。您应该查看 apc.filter 配置指令。另一个问题| PHP 文档

于 2010-11-17T02:23:15.260 回答