кеширование — APCu TTL не работает php 7.0

Указав TTL, элемент должен быть устаревшим из кэша. Но это не работает. Это очень очень просто. TTL установлен на 1 секунду. Я сделал ошибку?

Моя версия;

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"

Я не думаю, что элемент должен быть в кеше при втором вызове.

Но даже если кто-то сказал, что так и должно быть, то он не должен быть в кеше при третьем вызове.

2

Решение

Когда для apc.use_request_time задано значение true, которое является значением по умолчанию, это то, что происходит — время начала запроса SAPI используется для вычислений TTL, а не время вызова каждой функции.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector