Php APC未按预期工作?
我有以下功能:Php APC未按预期工作?,php,debugging,caching,apc,Php,Debugging,Caching,Apc,我有以下功能: function Cache($key, $value = null, $ttl = 60) { if (isset($value) === true) { apc_store($key, $value, intval($ttl)); } return apc_fetch($key); } 我正在使用以下代码对其进行测试: Cache('ktime', time(), 3); // Store sleep(1); var_du
function Cache($key, $value = null, $ttl = 60)
{
if (isset($value) === true)
{
apc_store($key, $value, intval($ttl));
}
return apc_fetch($key);
}
我正在使用以下代码对其进行测试:
Cache('ktime', time(), 3); // Store
sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should Fetch
sleep(5);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
sleep(1);
var_dump(Cache('ktime') . '-' . time()); echo '<hr />'; // Should NOT Fetch
它不应该是这样的吗:
string(21) "1273966771-1273966772"
string(11) "-1273966777"
string(11) "-1273966778"
string(11) "-1273966779"
我不明白,有人能帮我找出这种奇怪的行为吗?显然,这是APC 3.0.16(2007-12-26)及更高版本中的一个已知问题,不会被修复 ttl工作,但在给定请求期间“t”是一个常量。因此,缓存对象至少在下一个请求之前不会过期。噢!这就是“在下一个请求上”的意思,我想请求的意思是在下一个
apc\u fetch()
调用上。谢谢你,比尔,现在我可以利用这个“错误”。=)
string(21) "1273966771-1273966772"
string(11) "-1273966777"
string(11) "-1273966778"
string(11) "-1273966779"