2016-10-20 13 views
2

TTL을 지정하면 캐시에서 항목을 삭제해야합니다. 하지만 작동하지 않습니다. 이것은 매우 간단합니다. TTL은 1 초로 설정됩니다. 내가 실수 한거야?APCu TTL 작동하지 않는 PHP 7.0

내 버전;

PHP 7.0.12-1+deb.sury.org~xenial+1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.12-1+deb.sury.org~xenial+1, Copyright (c) 1999-2016, by Zend Technologies 

내 스크립트;

cat apcu.php 
<?php 

$key="KEY"; 

function xxx($key) { 
    if (apcu_exists($key)) { 
    print ("In Store\n"); 
    $value = apcu_fetch($key); 
    var_dump($value); 
    } else { 
    $value = "Hello Big Daddy"; 
    apcu_add($key, $value, 1); 
    print ("Not in store, adding\n"); 
    } 
} 

xxx($key); 
sleep(2); 
xxx($key); 
sleep(3); 
xxx($key); 

출력;

php apcu.php 
Not in store, adding 
In Store 
string(15) "Hello Big Daddy" 
In Store 
string(15) "Hello Big Daddy" 

두 번째 호출에서 항목이 캐시에 있어야한다고 생각하지 않습니다.

누군가가해야한다고해도 세 번째 호출에서 캐시에 있어야하지 않습니다.

답변

1

기본값 인 apc.use_request_time을 true로 설정하면 SAPI 요청 시작 시간이 각 함수가 호출 된 시간이 아니라 TTL 계산에 사용됩니다.