我正在尝试让APC作为持久数据结构工作。
我写了一个测试脚本来说明我遇到的问题。
<?php
function set_true()
{
apc_store("test", true);
var_dump(apc_fetch("test"));
}
var_dump(apc_fetch("test"));
set_true();
?>
当我使用apc.enable_cli=1
进行尝试时,会发生以下情况:
$ php test_store.php
bool(false)
bool(true)
$ php test_store.php
bool(false)
bool(true)
也就是说,缓存似乎在每个会话之间被擦除。根据{{3}},这是有道理的。
至于我在没有apc.enable_cli=1
的情况下运行时,会发生以下情况:
$ php test_store.php
bool(false)
bool(false)
$ php test_store.php
bool(false)
bool(false)
也就是说整个脚本中都没有缓存(存储不起作用)。
我希望能够影响一个在服务器的整个生命周期中保存的单一缓存,包括访问PHP的客户端访问,包括我从命令行编写和运行的脚本等。
答案 0 :(得分:1)
apc.enable_cli
表示它可以在CLI中运行,但并不意味着它会在请求之间保持值(因为没有适当的存储空间)。
因此,使用apc.enable_cli
,它将在脚本运行期间保留数据。没有它就不会存储它。
所以如果你真的需要缓存 - 使用另一种缓存机制(memcached / files /...)