2011-08-17 26 views
0

这里是我的PHPUnit测试功能的代码体:APC密钥超时在单个请求中工作吗?

$key = 'test:foobar'; 
$valueIn = 'this is a test string'; 
$success = apc_store($key, $valueIn, 1); // 1 second expire time 
$this->assertTrue($success); 
$valueOut = apc_fetch($key); 
$this->assertEquals($valueIn, $valueOut); 
sleep(2); // wait 2 seconds 
$valueOut = apc_fetch($key); 
$this->assertEquals(false, $valueOut); // <<< This assert fails! 

我的问题是,为什么$ valueOut == $ valueIn上的最后一个取?密钥是否应该过期并返回false?我也尝试过等待10秒钟,但不起作用。

我已经使用apc.php来检查缓存,并在那里关键是1秒到期。当我检查密钥时,该值是错误的,这是预期的。我正在使用APC 3.1.7

回答

2

不,变量不会在单个请求中过期。

PHP documentation for apc_store有以下说关于ttl(生存时间)参数(重点煤矿):经过ttl已过,存储的变量将会从缓存(予以删除对

下一个请求)。