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;

缓存的条目不应该从缓存中清除并返回false给apc_fetch()吗?APC 的 user_ttl 设置为 2。我仍在试图弄清楚 user_ttl 做了什么(文档非常神秘)。

4

1 回答 1

5

手册

生存时间;将var存储在缓存中ttl秒。ttl通过后 ,存储的变量将从缓存中删除( 在下一个请求中)。如果未提供ttl(或者ttl为 0),则该值将一直存在,直到手动将其从缓存中删除,否则无法在缓存中存在(清除、重新启动等)。

所以它说该项目在下一个请求的 TTL之后从缓存中删除。因此,直到您的下一个请求,该项目才会从缓存中删除,这就是您不断获得 5 的原因。

于 2012-07-31T23:02:04.490 回答