Actualmente estoy trabajando para agregar Memcache a una aplicación que se ejecuta en GAE/J. Tengo una pregunta sobre cómo se comporta la memcache de producción cuando expiran los valores, si también se eliminan las claves.¿Se eliminan las claves cuando caducan los datos de Memcache?
Lo más cerca que pude encontrar para responder a esta pregunta es aquí: http://code.google.com/appengine/docs/java/memcache/overview.html#How_Cached_Data_Expires
Sé que no puedo confiar en los valores que se alojen en Memcache; y no, pero lo que me pregunto es si las claves que se asignan a esos valores también se eliminan.
En otras palabras, si lo hago
mycache.contains("key")
¿Esta siendo cierto después de un valor es empujado fuera de la caché?
Nota al margen: No creo que marque la diferencia; pero por si acaso, estoy usando el memcache asíncrono desde el servicio Memcache y obtener una bodega de esta manera:
MemcacheServiceFactory.getAsyncMemcacheService();
que estoy pidiendo esto porque no estoy haciendo la típica
if(cache.get("key") == null)
Almacenar valores nulos cuando vuelven del almacén de datos, por lo que no busco constantemente el valor nulo. Y me aseguro de eliminar la clave cuando pueda cambiar. Entonces, simplemente porque la búsqueda de Memcache devuelve nulo, trabajo suponiendo que la consulta es de hecho nula; pero me aseguro de que cuando se produzcan otras consultas que podrían cambiar, se elimine la búsqueda nula. Es por eso que estoy usando cache.contains("key")
en contraposición a cache.get("key") == null
Las claves y los valores no son separables; no tendría ningún sentido si lo fueran. –