Я использую Google App Engine для своего приложения и для уменьшения затрат на хранилище данных я широко использую memcache.Google App Engine - истечение срока действия Memcache
Пример фрагмента кода, приведенный ниже,
val = memcache.get('forum')
if val is None:
val = 'stackoverflow'
memcache.add('forum', val, time=600)
return val
Истечение времени я поставил это в течение 10 минут (600/60 = 10 мин), а значение не находится в кэше в течение 10 минут, но в приложение двигателя Memcache документ его говорит, что значения не будут выселены, как показано ниже (поскольку время только необязательный параметр)
добавить (ключ, значение, время = 0, min_compress_len = 0, пространство имен = нет) источник Устанавливает значение ключа, если элемент еще не находится в memcache.
Параметры ключ - ключ для установки. Подробные сведения см. В документации к клиенту.
value - Значение для установки. Любой тип. Если комплекс, будет маринован.
время - дополнительно срок годности, либо относительное число секунд от текущего времени (до 1 месяца), либо абсолютное время эпохи Unix. По умолчанию пункты не истекают, хотя элементы могут быть выведены из-за давления памяти. Поплавковые значения будут округлены до ближайшей целой секунды. min_compress_len - Игнорированная опция для совместимости. namespace - строка , указывающая необязательное пространство имен, которое будет использоваться в запросе. Возвращает Истина, если добавлена. Ошибка при ошибке.
Я также использую выделенный кэш память, он говорит, что ничего не истечет, но в моем случае деталь истекает, когда я установить время (в течение, например: время = 600s), почему это так ??
Введенный вами текст документа говорит о том, что значение по умолчанию никогда не истекает, однако вы поставляете время, поэтому оно будет. Другими словами, поскольку вы задаете параметр времени, вы переопределяете поведение по умолчанию. –
Спасибо Тиму, я думал, что его необязательный параметр - и, хотя мы его укажем, элементы истекут только из-за давления памяти. Вы уверены, что если мы укажем время, то элементы истекают после этого времени. Поскольку мои затраты на движок Google довольно высоки - я нахожу способ его оптимизировать, перемещая все данные в memcache для более высокого времени истечения 1 дня, и могу ли я знать, стоит ли это делать? –
Вы сказали в своем первоначальном вопросе: «Но в моем случае элементы истекают, когда я устанавливаю время (например: time = 600s), почему это так?» Из вашего первоначального описания он работает как задокументированный. Исключение этого параметра означает, что он никогда не истекает. –