我目前使用 APC“apc_store”函数作为替换缓存中已经存在的项目的一种方法,但我不确定 TTL 是否被重置。我想要它,这样它就不会重置 TTL 值。
问问题
1359 次
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 回答