cache.set(key, value, 9999999)
Но это - весьма конечное время...
def _get_memcache_timeout(self, timeout):
"""
Memcached deals with long (> 30 days) timeouts in a special
way. Call this function to obtain a safe value for your timeout.
"""
timeout = timeout or self.default_timeout
if timeout > 2592000: # 60*60*24*30, 30 days
# See http://code.google.com/p/memcached/wiki/FAQ
# "You can set expire times up to 30 days in the future. After that
# memcached interprets it as a date, and will expire the item after
# said date. This is a simple (but obscure) mechanic."
#
# This means that we have to switch to absolute timestamps.
timeout += int(time.time())
return timeout
И из FAQ:
Каковы ограничения на установку времени истечения? (почему есть ограничение в 30 дней?)
Вы можете установить время истечения до 30 дней в будущем. После этого memcached интерпретирует его как дату и будет удалять элемент после указанной даты. Это простая (но непонятная) механика.