Obtener la lista de claves de caché en Django

Estoy tratando de entender cómo Django está configurando claves para mis vistas. Me pregunto si hay una manera de obtener todas las claves guardadas de Memcached. algo como un cache.all() o algo. He estado tratando de encontrar la clave con cache.has_key('test') pero todavía no puedo averiguar cómo se están nombrando las claves de vista.

ACTUALIZACIÓN: la razón por la que necesito esto es porque necesito eliminar manualmente partes de la memoria caché pero no sé los valores clave que Django está configurando para mi clave cache_view

Puede usar http://www.darkcoding.net/software/memcached-list-all-keys/ como se explica en ¿Cómo verifico el contenido de un caché Django con Python memcached?

Puede usar memcached_stats desde: https://github.com/dlrust/python-memcached-stats . Este paquete hace posible ver las claves memcached desde el entorno python.

Como se mencionó, no hay forma de obtener una lista de todas las claves de caché dentro de django. Si está utilizando un caché externo (por ejemplo, memcached, o caché de base de datos) puede inspeccionar el caché externo directamente.

Pero si quieres saber cómo convertir una clave django a la que se usa en el sistema backend, la función make_key () de django hará esto.

https://docs.djangoproject.com/en/1.8/topics/cache/#cache-key-transformation

 >>> from django.core.cache import caches >>> caches['default'].make_key('test-key') u':1:test-key' 

Si esto no está demasiado desactualizado, he tenido un problema similar, debido a que he tenido que recorrer todo el caché. Lo logré cuando agregué algo a mi caché como en el siguiente pseudocódigo:

 #create caches key list if not exists if not my_cache.get("keys"): my_cache.set("keys", []) #add to my cache my_cache.set(key, value) #add key to keys if key not in my_cache.get("keys"): keys_list = my_cache.get("keys") keys_list.append(key) my_cache.set("keys", keys_list) 

Hay algunas soluciones extrañas que puedes hacer para obtener todas las claves desde la línea de comandos, pero no hay forma de hacerlo con memcached dentro de Django. Ver este hilo .