APC密钥超时是否在单个请求中有效?

时间:2011-08-17 23:06:22

标签: php caching apc

这是我的PHPUnit测试功能代码的主体:

$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秒的到期时间。当我检查密钥时,值为false,这与预期的一样。我正在使用APC 3.1.7

1 个答案:

答案 0 :(得分:2)

不,单个请求中的变量未过期。

PHP documentation for apc_storettl(生存时间)论点(强调我的)有以下说法:

  

ttl过后,存储的变量将从缓存中删除(在下一个请求上)。