APC用户缓存条目未到期

时间:2012-07-31 22:56:58

标签: php apc ttl

每次运行此代码时,我都会看到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的作用(文档很神秘)。

1 个答案:

答案 0 :(得分:5)

来自manual

  

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

因此它表示在下一个请求上的 TTL 之后,项目将从缓存中删除。因此,在您下次请求之前,该项目不会从缓存中删除,这就是您继续获得5的原因。