Obtenir la liste des Clés de Cache de Django
J'essaie de comprendre comment Django est de définir les clés de mon point de vue. Je me demande si il ya un moyen de simplement obtenir toutes les clés de Memcache. quelque chose comme un cache.all()
ou quelque chose. J'ai essayé de trouver la clé avec cache.has_key('test')
mais encore ne peux pas comprendre comment le point de vue touches sont en train d'être nommé.
Mise à JOUR: La raison pour laquelle j'ai besoin c'est parce que j'ai besoin de supprimer manuellement des pièces de la cache, mais ne sais pas les valeurs de la clé de Django pour mon cache_view clé
- Pourriez-vous préciser pourquoi vous en avez besoin? Comme ma réponse ci-dessous mentionne, ce n'est pas possible à l'intérieur de Django. Si nous savons que votre cas d'utilisation, nous pourrions être en mesure de fournir des solutions de rechange.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser http://www.darkcoding.net/software/memcached-list-all-keys/ comme expliqué dans Comment puis-je vérifier le contenu d'un cache de Django avec memcached Python?
Vous pouvez utiliser memcached_stats à partir de: https://github.com/dlrust/python-memcached-stats. Ce package permet de visualiser l'memcached clés à partir de l'intérieur de l'environnement python.
Comme mentionné il n'y a aucun moyen d'obtenir une liste de toutes les clés de cache à l'intérieur de django. Si vous utilisez un cache externe (par exemple, memcached, ou une base de données mise en cache, vous pouvez inspecter le cache externe directement.
Mais si vous voulez savoir comment convertir un django clé à celle utilisée dans le système backend, django make_key() fonction de ce faire.
https://docs.djangoproject.com/en/1.8/topics/cache/#cache-key-transformation
Pour RedisCache vous pouvez obtenir toutes les clés disponibles avec.
Si ce n'est pas trop hors de date, j'ai eu le même problème, à cause que j'ai eu à effectuer une itération sur l'ensemble de cache. Je l'ai réussi, quand je ajouter quelque chose à ma cache, comme dans le pseudo-code suivant:
Il y a peu bizarre solutions de contournement que vous pouvez faire pour obtenir toutes les clés de la ligne de commande, mais il n'y a aucun moyen de le faire avec memcached à l'intérieur de Django. Voir ce fil.