假设我有一个config.php文件,其中包含许多首选项的定义。我的init脚本将这些值加载到内存中。
说而不是将它们加载到内存中,我将它们加载到apc中。当我手动更改config.php的内容时,如何强制apc更新变量?我是否需要创建某种执行更改的实用程序脚本,以确保缓存的变量能够自动更新?
如果apc中存在变量,并且添加了与现有(更新版本)同名的新变量,是否会覆盖旧的缓存值?
答案 0 :(得分:1)
当我手动更改config.php的内容时,如何强制apc更新变量?
你有几个选择。
apc_store
时,您可以设置“生存时间”值,以秒为单位。例如,您可以将每个配置值设置为持续五分钟。当缺少一次(apc_exists
)时,您可以触发重新生成并重新访问它们的代码。apc_delete
。apc_store
本身来执行配置更新。第一个是最省力,第二个是最理智的,第三个和第四个可能是正确的做法,假设配置更新是程序化的东西而不是完全手动的东西,正如你所暗示的那样。
如果配置更新总是手动,则值得编写一个可以手动调用的小脚本,只需清除或更新缓存即可。
那就是说,非常坦率地说,如果你还使用APC作为字节码缓存,那么在每个网页浏览中解析纯PHP配置文件的成本是 nonexistant 。在这种情况下,缓存内部定义的值是完全愚蠢的。
如果apc中存在变量,并且添加了与现有(更新版本)同名的新变量,是否会覆盖旧的缓存值?
正确,除非您使用的是apc_add
而不是apc_store
。