APC只有一半工作

时间:2013-05-17 00:14:56

标签: php apc

我正在尝试让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的客户端访问,包括我从命令行编写和运行的脚本等。

1 个答案:

答案 0 :(得分:1)

apc.enable_cli表示它可以在CLI中运行,但并不意味着它会在请求之间保持值(因为没有适当的存储空间)。

因此,使用apc.enable_cli,它将在脚本运行期间保留数据。没有它就不会存储它。

所以如果你真的需要缓存 - 使用另一种缓存机制(memcached / files /...)