¿Cómo funciona incr con los tiempos de expiración?

En memcached (implementación de api de appengine), ¿cómo interactúa la caducidad con incr ()? No hay un argumento de tiempo para incr (), pero ¿qué sucede si agrego la clave con otra llamada en lugar de usar el parámetro initial_value, de esta manera?

memcache.add('testcounter', 0, time=60*90) newcnt = memcache.incr('testcounter') 

¿expira el testcounter en 90 minutos? ¿Llamo o no a esto de nuevo en ese momento?

En el resumen de memcache de GAE dicen:

“La aplicación puede proporcionar un tiempo de expiración cuando se almacena un valor, ya sea como una cantidad de segundos con relación a cuando se agrega el valor , o como un tiempo absoluto de la época de Unix en el futuro (una cantidad de segundos desde la medianoche del 1 de enero de 1970) . El valor será desalojado a más tardar en este momento, aunque puede ser desalojado por otras razones “. No menciona modificaciones.

Si observa el código de memcache en google.appengine.api.memcache.init.py, verá que ni en increment ni en _incrdecr hay una llamada a la función set_expiration_time

El tiempo de caducidad no se ve afectado por incr.

Ese objeto caducará de la memoria caché a más tardar 90 segundos después de agregarlo, independientemente del número de veces que lo incremente.

(y, por supuesto, puede caducar antes)