强制更新php apc缓存数据变量?

时间:2012-12-27 00:20:07

标签: php caching apc

假设我有一个config.php文件,其中包含许多首选项的定义。我的init脚本将这些值加载到内存中。

说而不是将它们加载到内存中,我将它们加载到apc中。当我手动更改config.php的内容时,如何强制apc更新变量?我是否需要创建某种执行更改的实用程序脚本,以确保缓存的变量能够自动更新?

如果apc中存在变量,并且添加了与现有(更新版本)同名的新变量,是否会覆盖旧的缓存值?

1 个答案:

答案 0 :(得分:1)

  

当我手动更改config.php的内容时,如何强制apc更新变量?

你有几个选择。

  1. 当您致电apc_store时,您可以设置“生存时间”值,以秒为单位。例如,您可以将每个配置值设置为持续五分钟。当缺少一次(apc_exists)时,您可以触发重新生成并重新访问它们的代码。
  2. 您可以在代码可以到达的位置和APC内部存储“上次更新”时间。比较两者。如果APC缓存已过期,则触发刷新。
  3. 如果您已经自动缓存了值,则可以在键上执行配置更新调用apc_delete
  4. 如果 已经已经自动缓存了值,那么您只需要调用apc_store本身来执行配置更新。
  5. 第一个是最省力,第二个是最理智的,第三个和第四个可能是正确的做法,假设配置更新是程序化的东西而不是完全手动的东西,正如你所暗示的那样。

    如果配置更新总是手动,则值得编写一个可以手动调用的小脚本,只需清除或更新缓存即可。

    那就是说,非常坦率地说,如果你还使用APC作为字节码缓存,那么在每个网页浏览中解析纯PHP配置文件的成本是 nonexistant 。在这种情况下,缓存内部定义的值是完全愚蠢的。

      

    如果apc中存在变量,并且添加了与现有(更新版本)同名的新变量,是否会覆盖旧的缓存值?

    正确,除非您使用的是apc_add而不是apc_store