Inhaltsverzeichnis
Einen einzelnen Befehl ausführen
Befehle stapelweise ausführen
mehrzeilige Zeichenfolge festlegen
Wiederholte Ausführung von Anweisungen
Großen SCHLÜSSEL scannen
Sampling-Server-Anweisungen
诊断服务器时延
远程 rdb 备份
模拟从库
Heim Datenbank Redis So verwenden Sie das Redis-Befehlszeilentool

So verwenden Sie das Redis-Befehlszeilentool

Jun 03, 2023 am 08:53 AM
redis

Einen einzelnen Befehl ausführen

Beim Zugriff auf den Redis-Server verwenden wir normalerweise redis-cli, um in den interaktiven Modus zu gelangen, und lesen und schreiben dann auf dem Server, indem wir Fragen stellen und beantworten. In diesem Fall verwenden wir den „interaktiven Modus“. . Es gibt einen anderen „Direktmodus“, der den Befehl ausführt und die Ausgabeergebnisse erhält, indem die Befehlsparameter direkt an redis-cli übergeben werden.

$ redis-cli incrby foo 5<br/>(integer) 5<br/>$ redis-cli incrby foo 5<br/>(integer) 10<br/>
Nach dem Login kopieren


Wenn der Ausgabeinhalt groß ist, können Sie die Ausgabe auch in eine externe Datei umleiten

$ redis-cli info > info.txt<br/>$ wc -l info.txt<br/>     120 info.txt<br/>
Nach dem Login kopieren


Der Server, auf den der obige Befehl verweist, ist die Standardserveradresse kann dies tun

// -n 2 表示使用第2个库,相当于 select 2<br/>$ redis-cli -h localhost -p 6379 -n 2 ping<br/>PONG<br/>
Nach dem Login kopieren

Befehle stapelweise ausführen

Im täglichen Online-Entwicklungsprozess ist es manchmal unvermeidlich, Daten manuell zu erstellen und in Redis zu importieren. Normalerweise würden wir dazu ein Skript schreiben. Es gibt jedoch eine andere, bequemere Möglichkeit: Redis-cli direkt verwenden, um eine Reihe von Anweisungen stapelweise auszuführen.

$ cat cmds.txt<br/>set foo1 bar1<br/>set foo2 bar2<br/>set foo3 bar3<br/>......<br/>$ cat cmds.txt | redis-cli<br/>OK<br/>OK<br/>OK<br/>...<br/>
Nach dem Login kopieren


Der obige Befehl verwendet Unix-Pipes, um die Standardausgabe des cat-Befehls mit der Standardeingabe von redis-cli zu verbinden. Tatsächlich können Sie die Eingabeumleitung auch direkt verwenden, um Anweisungen stapelweise auszuführen.

$ redis-cli < cmds.txt<br/>OK<br/>OK<br/>OK<br/>...<br/>
Nach dem Login kopieren

mehrzeilige Zeichenfolge festlegen

Wenn eine Zeichenfolge mehrere Zeilen hat und Sie sie an den Set-Befehl übergeben möchten, wie macht redis-cli das? Sie können die Option -x verwenden, die den Inhalt der Standardeingabe als letztes Argument verwendet.

$ cat str.txt<br/>Ernest Hemingway once wrote,<br/>"The world is a fine place and worth fighting for."<br/>I agree with the second part.<br/>$ redis-cli -x set foo < str.txt<br/>OK<br/>$ redis-cli get foo<br/>"Ernest Hemingway once wrote,\n\"The world is a fine place and worth fighting for.\"\nI agree with the second part.\n"<br/>
Nach dem Login kopieren

Wiederholte Ausführung von Anweisungen

redis-cli unterstützt auch die wiederholte Ausführung von Anweisungen mehrmals. Legen Sie ein Intervall zwischen der Ausführung jeder Anweisung fest, damit Sie beobachten können, wie sich der Ausgabeinhalt einer bestimmten Anweisung im Laufe der Zeit ändert.

// 间隔1s,执行5次,观察qps的变化<br/>$ redis-cli -r 5 -i 1 info | grep ops<br/>instantaneous_ops_per_sec:43469<br/>instantaneous_ops_per_sec:47460<br/>instantaneous_ops_per_sec:47699<br/>instantaneous_ops_per_sec:46434<br/>instantaneous_ops_per_sec:47216<br/>
Nach dem Login kopieren


Wenn Sie die Anzahl auf -1 einstellen, wird es unzählige Male wiederholt und für immer ausgeführt. Wenn der Parameter -i nicht angegeben wird, gibt es kein Intervall und die Ausführung wird kontinuierlich wiederholt. Sie können Anweisungen auch im interaktiven Modus wiederholt ausführen. Das Formular ist ziemlich seltsam. Fügen Sie die Anzahl der Male vor der Anweisung hinzu Ein einzelner Befehl kann in das CSV-Format exportiert werden.

127.0.0.1:6379> 5 ping<br/>PONG<br/>PONG<br/>PONG<br/>PONG<br/>PONG<br/># 下面的指令很可怕,你的屏幕要愤怒了<br/>127.0.0.1:6379> 10000 info<br/>.......<br/>
Nach dem Login kopieren

Natürlich ist diese Exportfunktion relativ schwach, es handelt sich lediglich um eine Ansammlung von durch Kommas getrennten Zeichenfolgen. Sie können jedoch die Stapelausführung von Befehlen kombinieren, um den Exporteffekt mehrerer Anweisungen zu sehen.

$ redis-cli rpush lfoo a b c d e f g<br/>(integer) 7<br/>$ redis-cli --csv lrange lfoo 0 -1<br/>"a","b","c","d","e","f","g"<br/>$ redis-cli hmset hfoo a 1 b 2 c 3 d 4<br/>OK<br/>$ redis-cli --csv hgetall hfoo<br/>"a","1","b","2","c","3","d","4"<br/>
Nach dem Login kopieren

Leser sollten verstehen, nachdem sie dies gesehen haben, dass der Effekt des Parameters --csv darin besteht, die Ausgabe einmal zu konvertieren und durch Kommas zu trennen, nichts weiter.

Lua-Skript ausführen


Im Lua-Skriptabschnitt verwenden wir die eval-Anweisung, um die Skriptzeichenfolge auszuführen. Jedes Mal wird der Skriptinhalt in eine einzeilige Zeichenfolge komprimiert und dann die eval-Anweisung aufgerufen und ist schlecht lesbar. redis-cli berücksichtigt dies und kann Skriptdateien direkt ausführen.

$ redis-cli --csv -r 5 hgetall hfoo<br/>"a","1","b","2","c","3","d","4"<br/>"a","1","b","2","c","3","d","4"<br/>"a","1","b","2","c","3","d","4"<br/>"a","1","b","2","c","3","d","4"<br/>"a","1","b","2","c","3","d","4"<br/>
Nach dem Login kopieren

Im Folgenden führen wir die obigen Anweisungen in Form eines Skripts aus. Die Parameterform ist unterschiedlich und es ist nicht erforderlich, die Anzahl der KEY-Parameter anzugeben Wenn Ihr Lua-Skript zu lang ist, ist --eval hilfreich.

Serverstatus überwachen


Wir können den Parameter --stat verwenden, um den Status des Servers in Echtzeit zu überwachen und ihn alle 1 Sekunde in Echtzeit auszugeben.

127.0.0.1:6379> eval "return redis.pcall(&#39;mset&#39;, KEYS[1], ARGV[1], KEYS[2], ARGV[2])" 2 foo1 foo2 bar1 bar2<br/>OK<br/>127.0.0.1:6379> eval "return redis.pcall(&#39;mget&#39;, KEYS[1], KEYS[2])" 2 foo1 foo2<br/>1) "bar1"<br/>2) "bar2"<br/>
Nach dem Login kopieren


Wenn Sie der Meinung sind, dass das Intervall zu lang oder zu kurz ist, können Sie das Ausgabeintervall mit dem Parameter -i anpassen.

Großen SCHLÜSSEL scannen

Diese Funktion ist so praktisch, dass ich sie unzählige Male online ausprobiert habe. Jedes Mal, wenn ich auf das Problem einer gelegentlichen Verzögerung in Redis stoße, fällt mir als Erstes ein, ob die Instanz einen großen SCHLÜSSEL enthält. Die Speichererweiterung und Freigabe des großen SCHLÜSSELS führt zu einer Verzögerung des Hauptthreads. Wenn Sie wissen, ob sich darin ein großer SCHLÜSSEL befindet, können Sie ein eigenes Programm zum Scannen schreiben, aber das ist zu umständlich. redis-cli bietet den Parameter --bigkeys, um die großen SCHLÜSSEL im Speicher schnell zu scannen. Verwenden Sie den Parameter -i, um das Scanintervall zu steuern, um einen plötzlichen Anstieg der Serveroperationen durch Scananweisungen zu vermeiden.

$ cat mset.txt<br/>return redis.pcall(&#39;mset&#39;, KEYS[1], ARGV[1], KEYS[2], ARGV[2])<br/>$ cat mget.txt<br/>return redis.pcall(&#39;mget&#39;, KEYS[1], KEYS[2])<br/>$ redis-cli --eval mset.txt foo1 foo2 , bar1 bar2<br/>OK<br/>$ redis-cli --eval mget.txt foo1 foo2<br/>1) "bar1"<br/>2) "bar2"<br/>
Nach dem Login kopieren


redis-cli zeichnet den SCHLÜSSEL mit der größten Länge für jeden Objekttyp auf. Für jeden Objekttyp wird der höchste Datensatz sofort ausgegeben, sobald er aktualisiert wird. Es kann die Ausgabe von KEYs mit einer Länge von Top1 garantieren, es gibt jedoch keine Garantie dafür, dass KEYs wie Top2 und Top3 gescannt werden können. Ein gängiger Ansatz besteht darin, mehrere Scans durchzuführen oder das Schlüsselwort mit der höchsten Priorität zu entfernen und dann erneut zu scannen, um festzustellen, ob noch Schlüsselwörter mit niedrigerer Priorität vorhanden sind.

Sampling-Server-Anweisungen

Jetzt ist ein Redis-Server online, dessen OPS zu hoch ist. Viele Geschäftsmodule verwenden diesen Redis. Wie können wir feststellen, welches Unternehmen den ungewöhnlich hohen OPS verursacht? Zu diesem Zeitpunkt können Sie die Anweisungen des Online-Servers ausprobieren. Durch Befolgen der Beispielanweisungen können Sie die Geschäftspunkte mit einem hohen OPS-Anteil grob analysieren. Verwenden Sie den Befehl „monitor“, um alle vom Server ausgeführten Anweisungen auf einmal anzuzeigen. Es ist zu beachten, dass Sie bei der Verwendung, auch wenn Sie eine Pause erzwingen möchten, Strg + C drücken müssen, da sonst zu viele Anweisungen auf dem Display angezeigt werden, das sofort blendet und knistert.

$ redis-cli --host 192.168.x.x --port 6379 monitor<br/>1539853410.458483 [0 10.100.90.62:34365] "GET" "6yax3eb6etq8:{-7}"<br/>1539853410.459212 [0 10.100.90.61:56659] "PFADD" "growth:dau:20181018" "2klxkimass8w"<br/>1539853410.462938 [0 10.100.90.62:20681] "GET" "6yax3eb6etq8:{-7}"<br/>1539853410.467231 [0 10.100.90.61:40277] "PFADD" "growth:dau:20181018" "2kei0to86ps1"<br/>1539853410.470319 [0 10.100.90.62:34365] "GET" "6yax3eb6etq8:{-7}"<br/>1539853410.473927 [0 10.100.90.61:58128] "GET" "6yax3eb6etq8:{-7}"<br/>1539853410.475712 [0 10.100.90.61:40277] "PFADD" "growth:dau:20181018" "2km8sqhlefpc"<br/>1539853410.477053 [0 10.100.90.62:61292] "GET" "6yax3eb6etq8:{-7}"<br/>
Nach dem Login kopieren

诊断服务器时延

通常我们使用Unix的ping命令来测量两台计算机的延迟。Redis 也提供了时延诊断指令,不过它的原理不太一样,它是诊断当前机器和 Redis 服务器之间的指令(PING指令)时延,它不仅仅是物理网络的时延,还和当前的 Redis 主线程是否忙碌有关。如果你发现 Unix 的 ping 指令时延很小,而 Redis 的时延很大,那说明 Redis 服务器在执行指令时有微弱卡顿。

$ redis-cli --host 192.168.x.x --port 6379 --latency<br/>min: 0, max: 5, avg: 0.08 (305 samples)<br/>
Nach dem Login kopieren


时延单位是 ms。redis-cli 还能显示时延的分布情况,而且是图形化输出。

$ redis-cli --latency-dist<br/>
Nach dem Login kopieren


这个图形的含义作者没有描述,读者们可以尝试破解一下。

远程 rdb 备份

执行下面的命令就可以将远程的 Redis 实例备份到本地机器,远程服务器会执行一次bgsave操作,然后将 rdb 文件传输到客户端。远程 rdb 备份让我们有一种“秀才不出门,全知天下事”的感觉。

$ ./redis-cli --host 192.168.x.x --port 6379 --rdb ./user.rdb<br/>SYNC sent to master, writing 2501265095 bytes to &#39;./user.rdb&#39;<br/>Transfer finished with success.<br/>
Nach dem Login kopieren

模拟从库

如果你想观察主从服务器之间都同步了那些数据,可以使用 redis-cli 模拟从库。

$ ./redis-cli --host 192.168.x.x --port 6379 --slave<br/>SYNC with master, discarding 51778306 bytes of bulk transfer...<br/>SYNC done. Logging commands from master.<br/>...<br/>
Nach dem Login kopieren


从库连上主库的第一件事是全量同步,所以看到上面的指令卡顿这很正常,待首次全量同步完成后,就会输出增量的 aof 日志。

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Redis-Befehlszeilentool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So implementieren Sie die zugrunde liegenden Redis So implementieren Sie die zugrunde liegenden Redis Apr 10, 2025 pm 07:21 PM

Redis verwendet Hash -Tabellen, um Daten zu speichern und unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Hash -Tabellen, Sammlungen und geordnete Sammlungen. Ernähren sich weiterhin über Daten über Snapshots (RDB) und appendiert Mechanismen nur Schreibmechanismen. Redis verwendet die Master-Slave-Replikation, um die Datenverfügbarkeit zu verbessern. Redis verwendet eine Ereignisschleife mit einer Thread, um Verbindungen und Befehle zu verarbeiten, um die Datenatomizität und Konsistenz zu gewährleisten. Redis legt die Ablaufzeit für den Schlüssel fest und verwendet den faulen Löschmechanismus, um den Ablaufschlüssel zu löschen.

Was tun, wenn Redis-Server nicht gefunden werden kann Was tun, wenn Redis-Server nicht gefunden werden kann Apr 10, 2025 pm 06:54 PM

Schritte zur Lösung des Problems, das Redis-Server nicht finden kann: Überprüfen Sie die Installation, um sicherzustellen, dass Redis korrekt installiert ist. Setzen Sie die Umgebungsvariablen Redis_host und Redis_port; Starten Sie den Redis-Server Redis-Server; Überprüfen Sie, ob der Server Redis-Cli Ping ausführt.

So sehen Sie alle Schlüssel in Redis So sehen Sie alle Schlüssel in Redis Apr 10, 2025 pm 07:15 PM

Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

So sehen Sie die Versionsnummer der Redis So sehen Sie die Versionsnummer der Redis Apr 10, 2025 pm 05:57 PM

Um die Redis -Versionsnummer anzuzeigen, können Sie die folgenden drei Methoden verwenden: (1) Geben Sie den Info -Befehl ein, (2) Starten Sie den Server mit der Option --version und (3) die Konfigurationsdatei anzeigen.

So lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So verwenden Sie Redis Zset So verwenden Sie Redis Zset Apr 10, 2025 pm 07:27 PM

Redis bestellte Sets (ZSETs) werden verwendet, um bestellte Elemente und Sortieren nach zugehörigen Bewertungen zu speichern. Die Schritte zur Verwendung von ZSET umfassen: 1. Erstellen Sie ein Zset; 2. Fügen Sie ein Mitglied hinzu; 3.. Holen Sie sich eine Mitgliederbewertung; 4. Holen Sie sich eine Rangliste; 5. Holen Sie sich ein Mitglied in der Rangliste; 6. Ein Mitglied löschen; 7. Holen Sie sich die Anzahl der Elemente; 8. Holen Sie sich die Anzahl der Mitglieder im Score -Bereich.

See all articles