100 votes

Redis: Afficher la taille de la base de données / la taille des clés

Mon redis instance semble être de plus en plus très grand et j'aimerais savoir lequel de multiples bases de données que j'ai dans il consomme de la mémoire. Redis' INFO commande m'indique la taille totale et le nombre de clés par base de données qui permet de ne pas me donner beaucoup de perspicacité... Donc tous les outils/les idées que me donner plus d'informations lors de la surveillance de la redis serveur serait appréciée.

Le Redis documentation de ne pas me montrer toutes les commandes que l'on peut retourner la consommé la mémoire de certaines touches, donc je suppose que si tout le buggy de code d'écrire beaucoup de "trash" à redis cela pourrait être vraiment difficile à trouver...

121voto

Bernhard Vallant Points 18035

Donc ma solution à mon problème: Après avoir joué avec redis-cli un bot plus, j'ai découvert qu' DEBUG OBJECT <key> révèle quelque chose comme l' serializedlength de la touche, qui était en fait quelque chose que je cherchais... Pour l'ensemble de la base de données vous avez besoin pour regrouper toutes les valeurs de KEYS * , ce qui ne devrait pas être trop dfficult avec un langage de script de votre choix... La mauvaise chose est que le redis.io n'a pas vraiment beaucoup d'informations à propos de DEBUG OBJECT.

8voto

rlotun Points 3995

Vous trouverez peut-être très utile pour déguster Redis clés et de les regrouper par type. Salvatore a écrit un outil appelé redis-sampler que les questions de l'ordre de 10000 RANDOMKEY des commandes, suivi par un TYPE sur extrait clés. En quelques secondes, ou quelques minutes, vous devriez obtenir une assez précise de la répartition des principaux types.

J'ai écrit une extension (malheureusement, pas n'importe où, open-source, car c'est du travail), qui ajoute un peu d'introspection de noms de clé via regexs que vous donner une idée de quels types de touches d'application (selon quelle que soit la structure de nommage que vous utilisez), sont stockés dans le Redis. Combiné avec le plus général de sortie de redis-sampler, cela devrait vous donner une très bonne idée de ce qui se passe.

5voto

Donald Miner Points 18116

Peut-être que vous pouvez faire une introspection sur le fichier db. Le protocole est relativement simple (mais pas bien documenté), vous pouvez donc écrire un analyseur syntaxique pour déterminer les clés individuelles occupant beaucoup d’espace.


Nouvelles suggestions:

Avez-vous essayé d'utiliser MONITOR pour voir ce qui est écrit, en direct? Peut-être que vous pouvez trouver le problème avec les données en mouvement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X