Existe-t-il un moyen d'imprimer le nombre de clés dans Redis?
je suis conscient de
keys *
Mais cela semble un peu lourd. - Étant donné que Redis est un magasin de valeurs clés, c'est peut-être la seule façon de le faire. Mais j'aimerais toujours voir quelque chose du genre
count keys *
Réponses:
Vous pouvez lancer la commande INFO, qui renvoie des informations et des statistiques sur le serveur. Voir ici pour un exemple de sortie.
Comme mentionné dans les commentaires de mVChr, vous pouvez utiliser
info keyspace
directement sur le redis-cli.la source
redis-cli INFO Keyspace | grep ^db
DBSIZE
renvoie le nombre de clés et il est plus facile à analyser.Inconvénient: si une clé a expiré, elle peut encore compter.
http://redis.io/commands/dbsize
la source
KEYS *
expulse la clé expirée. Redis peut également expulser activement certaines clés expirées, mais pas nécessairement toutes.AVERTISSEMENT: ne l'exécutez pas sur une machine de production.
Sur une box Linux:
Remarque: comme mentionné dans les commentaires ci-dessous, il s'agit d'une opération O (N), donc sur une grande base de données avec de nombreuses clés, vous ne devez pas l'utiliser. Pour les petits déploiements, ça devrait aller.
la source
Pour obtenir le nombre total de clés, utilisez la commande ci-dessous:
la source
utilisez
DBSIZE
ceci ne vous donnera aucune clépour en savoir plus http://redis.io/commands/dbsize
la source
Depuis Redis 2.6, lua est pris en charge, vous pouvez obtenir un certain nombre de clés génériques comme ceci
voir la commande eval
la source
KEYS
pour compter les clés (avec ou sans préfixe) revient à jeter le bébé avec l'eau du bain.#
dans ce code est l' opérateur de longueur .dbsize()
renvoie le nombre total de clés.Vous pouvez estimer rapidement le nombre de clés correspondant à un modèle donné en échantillonnant les clés au hasard, puis en vérifiant quelle fraction d'entre elles correspond au modèle.
Exemple en python; compter toutes les clés commençant par
prefix_
:Même
iter=100
donne une estimation décente dans mon cas, mais est très rapide, par rapport àkeys prefix_
.Une amélioration consiste à échantillonner 1000 clés à chaque demande, mais gardez le nombre total, de sorte qu'après deux demandes vous diviserez par 2000, après trois demandes vous diviserez par 3000. Ainsi, si votre application est intéressée par le nombre total des clés correspondantes assez souvent, puis à chaque fois, il se rapprochera de plus en plus de la valeur réelle.
la source
Après Redis 2.6, le résultat de la commande INFO est divisé par sections. Dans la section «espace de clés», il y a des champs «clés» et «clés expirées» pour indiquer le nombre de clés présentes.
la source
la source