Question

Dans "Memcache Viewer", existe-t-il un moyen de vider une liste de clés existantes? Bien sûr, juste pour le débogage, pas pour les scripts!

Je demande, car il ne semble pas que le SDK GAE utilise un "réel" Le serveur memcache, donc je suppose qu'il est émulé en Python (pour simplifier, puisqu'il ne s'agit que d'un serveur de développement). Cela voudrait dire qu'il y a un dict quelque part avec les clés / valeurs ..

Était-ce utile?

La solution

Les gens le demandent souvent sur la liste memcached, parfois avec le même type de "juste au cas où je voudrais regarder pour déboguer quelque chose". sentiment.

La meilleure façon de gérer cela est de savoir comment vous générez vos clés et d'aller simplement chercher des informations lorsque vous voulez savoir ce qui est stocké pour une valeur donnée.

Si vous utilisez trop de fonctionnalités memcached pour le faire dans le cadre de votre session de débogage, lancez la journalisation des accès.

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 des 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émentera pas dans la leur. :)

Autres conseils

Non. Je n'ai pas trouvé une telle fonctionnalité dans memcached aussi.

En pensant à ce problème, j’ai trouvé cette limitation compréhensible. Elle nécessiterait de conserver un registre des clés avec tous les problèmes connexes tels que l’expiration des clés, leur invalidation et bien sûr le verrouillage. Un tel système ne serait pas aussi rapide que prévu pour les memcaches.

Memcache est conçu pour être rapide et aucun cas d'utilisation convaincant pour cette fonctionnalité ce qui justifierait le temps système requis pour une commande qui est tellement en contradiction avec le reste de memcached.

Le SDK GAE simule memcached. Il ne propose donc pas cette fonctionnalité.

Le moyen le plus simple auquel je puisse penser est de conserver une clé memcache avec un ID connu, puis de l'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 un moyen de contourner le problème. Je ne connais pas bien Google App Engine, mais sur un serveur Memcache standard, vous pouvez répertorier toutes les clés via Telnet, comme suit:

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 à le blog de Graham King pour cette jolie petite recette .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top