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 にアクセスするクライアントからのアクセス、コマンド ラインから作成および実行するスクリプトなど、サーバーの存続期間全体にわたって格納されたままになる 1 つの特異なキャッシュに影響を与えたいと考えています。

4

1 に答える 1

1

apc.enable_cliCLI で動作することを意味しますが、リクエスト間で値を保持することを意味するわけではありません (そのための適切なストレージがないため)。

したがって、apc.enable_cliスクリプトの実行中にデータが保持されます。それがなければ、それはまったく保存されません。

したがって、本当にキャッシュが必要な場合は、別のキャッシュメカニズム (memcached/files/...) を使用してください。

于 2013-05-17T00:49:22.643 に答える