1

我试图让 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)

也就是说,缓存似乎在每个会话之间都被擦除了。根据文档,这是有道理的。

至于当我没有运行它时apc.enable_cli=1,会发生以下情况:

$ php test_store.php
bool(false)
bool(false)
$ php test_store.php
bool(false)
bool(false)

也就是说,整个脚本中甚至都不存在缓存(存储不起作用)。

我希望能够影响一个单一的缓存,该缓存在服务器的整个生命周期中保持存储,包括来自客户端访问 PHP 的访问,包括我从命令行编写和运行的脚本等。

4

1 回答 1

1

apc.enable_cli意味着它将在 CLI 中工作,但并不意味着它将在请求之间保留值(因为没有适当的存储空间)。

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

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

于 2013-05-17T00:49:22.643 回答