5

このコードを実行すると、毎回 5 つの出力が表示されます。

<?php
$v = 5;
apc_store('vwxyz',$v,3);
$before = apc_fetch('vwxyz');
sleep(5);
$after = apc_fetch('vwxyz'); //should be false
echo $before;
echo "<br>";
echo $after;
$later = apc_fetch('vwxyz'); //OK this should definitely be false
echo "<br>";
echo $later;

キャッシュされたエントリをキャッシュからクリアして、apc_fetch() に false を返すべきではありませんか? APC の user_ttl 設定は 2 です。私はまだ user_ttl が何をするのかを理解しようとしています (ドキュメントは非常に不可解です)。

4

1 に答える 1

5

マニュアルから:

生きる時間; varをttl秒間キャッシュに保存します。ttlが渡された後、格納された変数は(次の要求で) キャッシュから消去されます 。ttlが指定されていない場合(またはttlが0の場合)、値はキャッシュから手動で削除されるまで、またはキャッシュに存在しなくなるまで(クリア、再起動など)保持されます。

したがって、次のリクエストでTTLが実行された、アイテムがキャッシュから削除されることを示しています。したがって、アイテムは次のリクエストまでキャッシュから削除されません。そのため、5を取得し続けます。

于 2012-07-31T23:02:04.490 に答える