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