Pregunta

En el " Memcache Viewer " ;, ¿hay alguna forma de volcar una lista de claves existentes? ¡Solo para depurar, por supuesto, no para usar en ningún script!

Pregunto porque no parece que el SDK de GAE esté usando un "real" servidor memcache, así que supongo que está emulado en Python (por simplicidad, ya que es solo un servidor de desarrollo). Esto significaría que hay un dict en algún lugar con las claves / valores ...

¿Fue útil?

Solución

La gente pide esto en la lista de Memcached mucho, a veces con el mismo tipo de "en caso de que quiera mirar alrededor para depurar algo". sentimiento.

La mejor manera de manejar esto es saber cómo generar sus claves, y simplemente buscar cosas cuando desee saber qué está almacenado para un valor dado.

Si tiene demasiadas cosas usando memcached para hacer eso dentro del alcance de su sesión de depuración, entonces comience a registrar el acceso.

Pero tenga en cuenta que memcached es rápido porque no permite tales cosas en general. El servidor de la comunidad tiene una funcionalidad limitada para obtener un subconjunto de las claves disponibles dentro de una clase de losa determinada, pero probablemente no sea lo que realmente desea, y es de esperar que Google no lo implemente en la suya. :)

Otros consejos

No. No encontré tal funcionalidad en memcached también.

Pensando en este problema, encontré esta limitación comprensible: requeriría mantener un registro de claves con todos los problemas relacionados, como la caducidad, la invalidación y, por supuesto, el bloqueo. Dicho sistema no sería tan rápido como deberían ser los memcaches.

Memcache está diseñado para ser rápido y no hay un caso de uso convincente para esta funcionalidad lo que justificaría la sobrecarga requerida para un comando que está tan en desacuerdo con el resto de memcached.

El SDK de GAE simula memcached, por lo que tampoco ofrece esta funcionalidad.

La forma más fácil en la que podría pensar sería mantener una clave de memoria caché en una ID conocida, y luego agregarla cada vez que inserte una nueva clave. De esta manera, puede consultar la clave única para obtener una lista de claves existentes.

Aquí hay una posible solución. No estoy familiarizado con Google App Engine pero en un servidor memcache normal puede enumerar todas las claves a través de telnet de la siguiente manera:

telnet 127.0.0.1 11211
stats items
STAT items:7:number 5
STAT items:7:age 88779
STAT items:7:evicted 0
STAT items:7:evicted_time 0
STAT items:7:outofmemory 0
STAT items:7:tailrepairs 0
... etc
END
stats cachedump 7 100
ITEM __builtin__.str_is_browser_supported·user_agent_hash=5706b885fdad3f7049dfb39455dfa7ab10086d97 [269 b; 1298926467 s]
END

Gracias a publicación de blog de Graham King por esa pequeña receta .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top