2010-09-02 23 views
5

¿Por qué Memcached impone un límite de 30 días en la vida útil de las entradas de caché?eliminando el límite de 30 días de memcached

En mi sistema, siempre establezco la duración de la vida en 30 días, ya que ese es el valor máximo permitido. Establecerlo en un valor mucho mayor a 30 días sería ideal para mi aplicación.

¿Hay alguna forma de cambiar el valor de "30 días" por otra cosa?

Estoy considerando descargar la fuente de memcached y volver a compilarla para mi propio uso. Cambiaría el "30" por el "300" o tal vez me desharía de ese cheque por completo. Si tuviera que hacer esto, ¿estaría cambiando algo que causaría un mal funcionamiento de memcached o funcionar mal? Mi expectativa sería que los elementos permanezcan en la memoria caché durante más tiempo, y los elementos se eliminarán de la memoria caché cuando la memoria caché se llene.

+1

¿Por qué el límite de 30 días es un problema? ¿Está causando problemas? – Oded

Respuesta

8

30 días es el tiempo máximo para el que puede especificar un vencimiento, pero si está pensando en eliminar por completo la verificación de caducidad, ¿no sería más sencillo establecer el tiempo de caducidad en 0? Esto debería significar que los datos se almacenan hasta que la memoria caché esté llena y se elimine para permitir la inserción de elementos más nuevos.

Desde el PHP Memcache docs:

Parámetro expire es tiempo de expiración en segundos. Si es 0, el elemento nunca caduca (pero el servidor de memcached no garantiza que este elemento se almacene todo el tiempo, podría eliminarse de la memoria caché para hacer lugar a otros elementos).
10

30 días es el límite en el que consideramos el tiempo que especificó para ser un TTL a partir de ahora.

Si quiere más de 30 días, está bien, solo use un tiempo absoluto (time() + whatever).

Si no desea caducidad basada en el tiempo, como dice ConroyP, simplemente use 0.

+0

puede agregar más detalles? considere mi pregunta aquí: http: //magento.stackexchange.com/questions/5925/memcached-why-data-is-not-stored/5961? Noredirect = 1 # 5961 – WonderLand

+0

Esto lo explica, ¡gracias! Acabo de leer la fuente de doctrina/caché y no pude entender por qué estaban comprobando la duración de esta manera, así que me alegro de encontrar una explicación. – puppyFlo

Cuestiones relacionadas