Dans le "Memcache Viewer", existe-t-il un moyen de vider une liste de clés existantes? Juste pour le débogage, bien sûr, pas pour une utilisation dans les scripts! Je demande car il ne semble pas que le GAE SDK utilise un serveur memcache "réel", donc je suppose qu'il est émulé en Python (pour simplifier, car c'est juste un serveur de développement) .. Cela signifierait il ya un dict quelque part avec les clés/valeurs ..Vider les clés memcache de la console GAE SDK?
Répondre
Les gens le demandent souvent sur la liste memcached, parfois avec le même type de "juste au cas où je veux chercher à déboguer quelque chose". La meilleure façon de gérer cela est de savoir comment vous générez vos clés, et allez chercher des choses quand vous voulez savoir ce qui est stocké pour une valeur donnée.
Si vous avez trop de choses en utilisant memcached pour faire cela dans le cadre de votre session de débogage, alors démarrez l'accès à la journalisation. Mais gardez à l'esprit - memcached est rapide car il ne permet pas de telles choses en général. Le serveur de communauté a des fonctionnalités limitées pour obtenir un sous-ensemble de clés disponibles dans une classe de dalle donnée, mais ce n'est probablement pas ce que vous voulez vraiment, et j'espère que google ne l'implémente pas dans le leur. :)
Non. Je n'ai pas trouvé une telle fonctionnalité dans memcached aussi. En pensant à ce problème, j'ai trouvé cette limitation compréhensible - il faudrait garder un registre des clés avec tous les problèmes connexes comme l'expiration de la clé, l'invalidation et bien sûr le verrouillage. Un tel système ne serait pas aussi rapide que les memcaches sont destinés à l'être.
Memcache est conçu pour être rapide et il n'y a pas de cas d'utilisation convaincant pour cette fonctionnalité qui justifierait la surcharge nécessaire pour une commande qui est en contradiction avec le reste de memcached. Le GAE SDK simule memcached, donc il n'offre pas cette fonctionnalité non plus.
Ceci est incorrect. memcached détient certainement toutes vos clés, drapeaux, expiration, identificateurs de cas, et quelques autres choses en mémoire. Ce qu'il ne fait pas, c'est effectuer toutes les options qui ne peuvent pas être exécutées dans un laps de temps connu (O (1) - comme la liste de toutes les clés). – Dustin
Vous avez raison, les clés sont hachées pour déterminer le serveur à utiliser, mais la clé d'origine est transmise au serveur plutôt que le hachage comme je le pensais à l'origine. –
Le moyen le plus simple que je pourrais penser, serait de maintenir une clé memcache à un ID connu, et ensuite ajouter à chaque fois que vous insérez une nouvelle clé. De cette façon, vous pouvez simplement demander la clé unique pour obtenir une liste des clés existantes.
Voici une solution possible. Je ne connais pas Google App Engine mais sur un serveur memcache régulier, vous pouvez lister toutes les clés par telnet comme ceci:
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
Merci à Graham King's blog post pour cette belle petite recette.
- 1. Erreur Eclipse + PyDev + GAE memcache
- 2. Comment vider les champs d'un objet vers la console?
- 3. Durée d'expiration maximale de la clé Memcache
- 4. iPhone SDK étrange message console launchd_core_logic.c
- 5. Quelques questions à propos de PHP memcache
- 6. Comment implémenter efficacement des sessions dans GAE?
- 7. Vider la configuration du conteneur dans StructureMap
- 8. get collection_name de la clé du parent dans GAE
- 9. Vider les pools de connexions JDBC
- 10. Partage Memcache
- 11. Quelle est la meilleure solution MemCache pour les applications ASP.NET?
- 12. Comment désactiver les options de la console
- 13. Les éléments memcache CakePHP expirent trop tôt
- 14. Impossible d'obtenir memcache pour renvoyer la valeur
- 15. Entités memcache sans ReferenceProperty
- 16. Conteneurs clés, assez sécurisé pour stocker les clés privées?
- 17. question connexion Memcache
- 18. Texte formaté dans GAE
- 19. StringListProperty dans GAE
- 20. GAE + Django. app-engine-patch ou django-gae-helpers?
- 21. La meilleure façon de vider la chaîne strings?
- 22. GAE unowned relation JPA
- 23. Débogage NetBeans de Python (GAE)
- 24. Gérer les clés de licence
- 25. 'Memcache' introuvable dans la ligne de commande script PHP
- 26. IA d'échecs pour GAE
- 27. Vider un DataGridView
- 28. Comment vider la sortie dans ZF
- 29. PHP Memcache utilisateur créé objets
- 30. Formatage de la sortie de la console
Le client memcache du serveur de développement GAE se connecte-t-il réellement à un serveur memcache? Regardant rapidement le code, il semble presque qu'il est émulé en Python ..? – dbr
Pour ma meilleure compréhension, c'est bien la propre implémentation de Google qui pourrait être basée, mais ce n'est certainement pas memcache. Il utilise l'api Memcache mais parce que c'est facile et fait bien le travail. –