aws - memcached windows
Tiempo de expiración de la clave máxima de Memcache (7)
Un tiempo de vencimiento, en segundos. Puede ser hasta 30 días. Después de 30 días, se trata como una marca de tiempo de unix de una fecha exacta.
https://code.google.com/p/memcached/wiki/NewCommands#Standard_Protocol
¿Cuál es el tiempo máximo de caducidad de la clave de memcached?
Si no proporciono un tiempo de caducidad y el caché se llena, ¿qué ocurre?
De acuerdo, descubrí que el número de segundos no puede exceder 2592000 (30 días). Por lo tanto, el tiempo máximo de caducidad es de 30 días.
En la configuración de laravel config.session.lifetime
que si se establece para ser un equivalente de 30 días antes, se considerará como una marca de tiempo (esto dará un error de token mismatch
de token mismatch
cada vez que se asuma que se usa memcached
).
Para responder, la caducidad de memcached se puede establecer en cualquier momento. (La configuración predeterminada de Laravel (en v5.0) lo establecerá en una marca de tiempo ya caducada). Si no lo configuró, se usará el defualt.
No, no hay límite. El límite de 30 días es si le das la cantidad de segundos que debería permanecer allí, pero si le das una marca de tiempo, solo existe el valor máximo largo o int en la máquina, que puede ser un límite.
->set(''key'', ''value'', time() + 24*60*60*365)
hará que la tecla permanezca allí durante un año, por ejemplo, pero sí, si la memoria caché se llena o se reinicia en el medio, este valor puede ser eliminado
Parece que algunas respuestas ya no son válidas.
Descubrí que una tecla no se ajusta cuando el TTL es demasiado alto. Por ejemplo 2992553564
.
Probado con el siguiente código PHP:
var_dump($memcached->set($id, "hello", 2992553564); // true
var_dump($memcached->get($id)); // empty!
var_dump($memcached->set($id, "hello", 500); // true
var_dump($memcached->get($id)); // "hello"
La versión está memcached 1.4.14-0ubuntu9
.
Puede establecer la caducidad de la clave en una fecha, proporcionando una marca de tiempo Unix en lugar de una cantidad de días. Esta fecha puede durar más de 30 días en el futuro:
Los tiempos de caducidad se especifican en segundos enteros sin signo. Se pueden configurar desde 0, lo que significa "nunca caducar", a 30 días (60 * 60 * 24 * 30). Cualquier tiempo superior a 30 días se interpreta como una fecha de marca de tiempo de Unix. Si desea caducar un objeto el 1 de enero del próximo año, así es como lo hace.
https://github.com/memcached/memcached/wiki/Programming#expiration
Pero, como dices , si configuras la caducidad de la clave en una cantidad de tiempo en lugar de una fecha, el máximo es 2.592.000 segundos o 30 días.
Si no proporciona caducidad y la memoria caché se llena, los valores-clave más antiguos caducarán primero:
La memoria también se recupera cuando es el momento de almacenar un nuevo artículo. Si no hay trozos libres, y no hay páginas libres en la clase de losa apropiada, memcached verá el final de la LRU para que un artículo lo "reclame". Buscará los últimos elementos en la cola de uno que ya ha caducado y, por lo tanto, está libre para su reutilización. Sin embargo, si no puede encontrar un artículo caducado, "desalojará" uno que aún no ha expirado. Esto se observa en varios contadores estadísticos
https://github.com/memcached/memcached/wiki/UserInternals#when-are-items-evicted