2011-02-10 11 views
8

Si un elemento en memcached está configurado para que nunca caduque, ¿está exento de desalojo de LRU?Memrached LRU y expiración

Los documentos que he visto no muestran una imagen clara de cuál es la prioridad. En mi opinión, sería ideal (quizás muy complicado internamente) que LRU solo se aplique a artículos que tuvieron un vencimiento> 0.

Respuesta

16

No, no está exento. Memcached es un caché, no un almacenamiento persistente. Cualquier elemento dentro de él, o toda la memoria caché en sí misma puede desaparecer en cualquier momento (pero no es probable a menos que esté lleno, o hay un problema importante).

Bajo una gran presión de memoria, el algoritmo LRU eliminará lo que sea necesario.

¿Qué es el caché de memcached?

La estructura de caché es una LRU (Utilización menos reciente), más los tiempos de espera de caducidad. Cuando almacena elementos en memcached, puede indicar cuánto tiempo debería ser válido en la memoria caché. Que es para siempre, o en algún momento en el futuro. Si el servidor no tiene memoria, las losas caducadas se reemplazan primero, luego las losas sin usar más antiguas pasan a continuación.

Si el sistema no tiene áreas de datos caducados, arrojará el bloque (losa) de memoria utilizado menos recientemente.

+0

Solo para observar, me doy cuenta de que memcached no es persistente, pero hay otras soluciones de almacenamiento en caché que eximirán las entradas de LRU o LFU. – Mark

3

doc dijo que cuando expirezero_does_not_evict se establece en 'verdadero', los elementos con 0 exptime no pueden desalojar.

Cuestiones relacionadas