cache.set(key, value, 9999999)
Pero este no es el tiempo infinito ...En Django/python, ¿cómo configuro Memcache por tiempo infinito?
cache.set(key, value, 9999999)
Pero este no es el tiempo infinito ...En Django/python, ¿cómo configuro Memcache por tiempo infinito?
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
Y desde el FAQ:
¿Cuáles son los límites de ajuste de tiempo de expiración? (¿por qué hay un límite de 30 días?)
Puede establecer tiempos de caducidad de hasta 30 días en el futuro. Después de eso, Memcached lo interpreta como una fecha y caducará después de dicha fecha. Esta es una mecánica simple (pero oscura).
Otra técnica simple es escribir el HTML generado en un archivo en el disco y usarlo como su caché. No es difícil de implementar, y funciona bastante bien como un caché basado en archivos que NUNCA caduca, es bastante transparente, etc.
No es la forma django, pero funciona bien.
De the docs:
Las fechas de caducidad se puede ajustar desde 0, que significa "nunca vencen", a 30 días. Cualquier tiempo superior a 30 días se interpreta como una marca de tiempo Unix fecha
Por lo tanto, para establecer una clave para que no caduque nunca, establece el tiempo de espera a 0.
¿Este error es relevante? https://code.djangoproject.com/ticket/9595 – Alex
Soporte para memoria caché has been added in Django 1.6 que no caduca estableciendo timeout=None
'Django 1.6.2',' Memcached 1.4.17'. Estaba usando 'timeout = 0' y era lo mismo que si no almacenara en caché. 'timeout = None' es el camino a seguir para el caché que no expira. – Neara
-1 La pregunta fue sobre Memcache, de esta manera será mucho más lento. –
¡Qué dijo Viktor! – Autobyte
Depende. Más lento que qué? Si está generando una página muy complicada, puede ser más rápido que regenerarla desde cero y, sin embargo, ser lo suficientemente rápida. Si está generando una página simple, esto es más lento que servirlo desde Memcache. – mlissner