2

現在、既に存在するキャッシュ内のアイテムを置き換える手段として APC の「apc_store」機能を利用していますが、TTL がリセットされるかどうかはわかりません。TTL値をリセットしないようにしたいのですが。

4

1 に答える 1

1

apc_store で指定した TTL は、既存のアイテムの TTL を確実に上書きします。TTL を指定しない場合、アイテムは期限切れになりません。

TTL は相対的で、今からの秒数です。固定値が必要な場合は、すべての apc_store 呼び出しで同じ値を使用してください。

アイテムを絶対時間で期限切れにする場合は、オブジェクトに時間を保存し、毎回 TTL を計算する必要があります。例えば、

$obj = apc_fetch($key);

if (!$obj) {
    $obj = new MyObject();
    $obj->expiry = time() + 24*60*60; // Expires 24 hours later
}

$ttl = $obj->expiry - time();

if ($ttl <= 0) {
   // Item expired
} else {
   apc_store($key, $obj, $ttl);
}
于 2010-06-30T04:49:28.690 に答える