APC用户缓存条目未到期

tin*_*err 5 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;
Run Code Online (Sandbox Code Playgroud)

是否应该从缓存中清除缓存的条目并将false返回到apc_fetch()?对于APC,user_ttl设置为2.我还在试图找出user_ttl的作用(文档很神秘).

dre*_*010 5

手册:

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

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

  • @tinkerr下一页请求我假设,意味着重新加载页面. (2认同)