Gibt es eine Möglichkeit, die Anzahl der Schlüssel in Redis zu drucken?
Ich bin mir bewusst, dass
keys *
Aber das scheint etwas schwer zu sein. - Angesichts der Tatsache, dass Redis ein Schlüsselwertspeicher ist, ist dies möglicherweise der einzige Weg, dies zu tun. Aber ich würde immer noch gerne etwas in der Art von sehen
count keys *
Antworten:
Sie können den Befehl INFO ausgeben, der Informationen und Statistiken zum Server zurückgibt. Siehe hier für ein Beispiel ausgegeben.
Wie in den Kommentaren von mVChr erwähnt, können Sie
info keyspace
direkt auf der Redis-Cli verwenden.quelle
redis-cli INFO Keyspace | grep ^db
DBSIZE
Gibt die Anzahl der Schlüssel zurück und ist einfacher zu analysieren.Nachteil: Wenn ein Schlüssel abgelaufen ist, zählt er möglicherweise noch.
http://redis.io/commands/dbsize
quelle
KEYS *
der abgelaufene Schlüssel entfernt. Außerdem kann Redis einige abgelaufene Schlüssel aktiv entfernen, jedoch nicht unbedingt alle.WARNUNG: Führen Sie dies nicht auf einer Produktionsmaschine aus.
Auf einer Linux-Box:
Hinweis: Wie in den Kommentaren unten erwähnt, handelt es sich um eine O (N) -Operation. Bei einer großen Datenbank mit vielen Schlüsseln sollten Sie diese also nicht verwenden. Für kleinere Bereitstellungen sollte dies in Ordnung sein.
quelle
Verwenden Sie den folgenden Befehl, um die Gesamtzahl der Schlüssel zu ermitteln:
quelle
Wenn Sie
DBSIZE
dies verwenden, erhalten Sie keinen Schlüsselum mehr zu lesen http://redis.io/commands/dbsize
quelle
Da Redis 2.6, lua unterstützt wird, können Sie eine solche Anzahl von Platzhalterschlüsseln erhalten
siehe eval befehl
quelle
KEYS
Zählen von Schlüsseln (mit oder ohne Präfix) ist wie das Herauswerfen des Babys mit dem Badewasser.#
in diesem Code angegebene Längenoperator .dbsize()
Gibt die Gesamtzahl der Schlüssel zurück.Sie können die Anzahl der Schlüssel, die mit einem bestimmten Muster übereinstimmen, schnell abschätzen, indem Sie die Schlüssel nach dem Zufallsprinzip auswählen und dann überprüfen, welcher Teil davon mit dem Muster übereinstimmt.
Beispiel in Python; Zählen aller Schlüssel beginnend mit
prefix_
:iter=100
Gibt in meinem Fall sogar eine anständige Schätzung, ist aber im Vergleich zu sehr schnellkeys prefix_
.Eine Verbesserung besteht darin, 1000 Schlüssel für jede Anforderung abzutasten, aber die Gesamtzahl beizubehalten, sodass Sie nach zwei Anforderungen durch 2000 und nach drei Anforderungen durch 3000 teilen. Wenn Ihre Anwendung also an der Gesamtzahl interessiert ist von übereinstimmenden Schlüsseln ziemlich oft, dann wird es jedes Mal näher und näher an den wahren Wert.
quelle
Nach Redis 2.6 werden die Ergebnisse des INFO-Befehls in Abschnitte aufgeteilt. Im Abschnitt "Schlüsselbereich" gibt es Felder "Schlüssel" und "Abgelaufene Schlüssel", die angeben, wie viele Schlüssel vorhanden sind.
quelle
quelle