PHP 8.1.0 RC 2 available for testing

Время хранения объекта

Некоторые команды сохранения отправляют на сервер время хранения (применительно к объектам или операциям, запрошенным клиентом). Во всех этих случаях фактическое время должно быть отправлено либо в формате Unix (количество секунд с 1 января 1970 года, в виде целого числа), либо как количество секунд с момента отправки/получения команды. В последнем случае это число не должно превышать 60*60*24*30 (количество секунд в 30 днях); если указано большее время хранения, сервер расценивает его как время в формате Unix.

Если время хранения равно 0 (по умолчанию), объект никогда не будет признан устаревшим (но при этом может быть удалён с сервера для высвобождения пространства под другие объекты).

add a note add a note

User Contributed Notes 3 notes

valugi at gmail dot com
4 years ago
The fact that one sets an expiration time does not mean that the keys will expire at that particular time. I'm not sure what is happening in the background, if there is a process like a garbage collector that expire keys, but some function do not activate the expiration check and return the key as valid, for example `getAllKeys` is not atomic and returns even expired keys.

$memcached = new Memcached();
//waiting more than 10 sec
$data = $memcached->getAllKeys();
var_dump($data); // key will still be listed
$key = $memcached->get('key'); // will trigger the expiration
i dot caught dot air at gmail dot com
3 years ago
A TTL of n seconds will expire between n and n-1 seconds as memcache doesn't use a high-resolution clock internally.

This is important to consider if you're working with very short TTLs.

info at tueena dot com
9 years ago
Note that if you pass the expiration time as an offset of seconds then the cache item will expire in current-second + offset, not in now + offset.

->add('foo', 42, 2);

This item will expire in n seconds where n > 1 and <= 2, not in exactly 2 seconds.
To Top