Какова максимальная длина в секундах для хранения значения в memcache

документация по кэшу памяти Google App Engine заявляет, что параметр time для memcache.set() является «необязательным временем истечения срока действия, либо относительным количеством секунд от текущего времени (до 1 месяца), либо абсолютным временем эпохи Unix».

Поэтому я попытался установить значение на 30 дней, которое согласно Google составляет 2 592 000 секунд.

Однако я очень подозреваю, что это значение слишком велико, потому что значение было установлено (memcache.set() возвращало значение True), но memcache.get() сразу после этого всегда возвращало None. Уменьшение этого значения до 1 728 000 секунд сработало нормально/как ожидал.

Я предполагаю, что после передачи наивысшего значения параметр time интерпретируется как абсолютное время эпохи Unix. Это означало бы, что 2 592 000 секунд были интерпретированы как «Сб, 31 января 1970 г., 00:00:00 по Гринвичу», что, очевидно, является датой в прошлом...

Итак, какое максимальное значение, которое вы можете ввести, будет интерпретировано как количество секунд в будущем?

Редактировать: на локальном сервере разработки 2 592 000 секунд работали нормально, но не на рабочих серверах. Я предполагаю, что оба сервера имеют различную интерпретацию значений.


person Emilien    schedule 08.05.2010    source источник
comment
Поскольку вы получаете различное поведение на сервере разработки и в рабочей среде, не могли бы вы сообщить об ошибке в системе отслеживания проблем?   -  person Nick Johnson    schedule 08.05.2010


Ответы (1)


Ваша связанная документация Google странно неточна; фактическая документация memcached более конкретна, в ней говорится, что число может не превышать 2 592 000 (30 дней секунд). Так что теоретически это должно было сработать, за исключением проблем с реализацией. (Это утверждение повторяется в документации PHP для его memcache.) Итак, согласно документам memcached, ваше первое значение должно было сработать.

Я не думаю, что 2 591 999 работает? В документе Google сказано «до одного месяца», что, если предположить, что в месяце 30 дней (неверное предположение), будет до 2 592 000 (например, но не включая). Это противоречит документам memcached, но, возможно, есть разница в реализации или что-то в этом роде.

person T.J. Crowder    schedule 08.05.2010