In diesem Artikel werden einige nützliche Redis-Betriebs- und Wartungstools vorgestellt, mit denen Sie erfahren, wie Sie den Betriebsstatus, die Datenmigration und die Clusterverwaltung überwachen. Ich hoffe, dass er Ihnen hilfreich sein wird!
Wenn wir Redis anwenden, stehen wir häufig vor Betriebs- und Wartungsarbeiten, einschließlich der Statusüberwachung von Redis, der Datenmigration, der Bereitstellung und dem Betrieb von Master-Slave-Clustern und Slicing-Clustern. Als nächstes werde ich Ihnen einige Tools aus diesen drei Aspekten vorstellen. Lernen wir zunächst die Tools zur Überwachung des Echtzeit-Laufstatus von Redis kennen. Diese Tools verwenden alle einen von Redis bereitgestellten Überwachungsbefehl: INFO. [Verwandte Empfehlungen:Redis-Video-Tutorial]
Der von Redis selbst bereitgestellte INFO-Befehl gibt umfangreiche Informationen zur Instanzlaufüberwachung zurück. Dieser Befehl ist die Grundlage des Redis-Überwachungstools.
Bei Verwendung des INFO-Befehls können Sie einen Parameterabschnitt verwenden. Für diesen Parameter gibt es mehrere Werte. Dementsprechend gibt der INFO-Befehl auch verschiedene Arten von Überwachungsinformationen zurück. Ich unterteile die vom INFO-Befehl zurückgegebenen Informationen in 5 Hauptkategorien. Einige Kategorien umfassen unterschiedliche Überwachungsinhalte, wie in der folgenden Tabelle gezeigt:
Bei der Überwachung des Betriebsstatus von Redis sind die vom INFO-Befehl zurückgegebenen Ergebnisse sehr nützlich. . Wenn Sie die detaillierte Bedeutung der von allen Parametern des INFO-Befehls zurückgegebenen Ergebnisse erfahren möchten, können Sie die Einführung von Redis auf der offiziellen Website überprüfen. Hier gebe ich Ihnen einige Parameter, auf die Sie sich bei Betrieb und Wartung konzentrieren müssen, und deren wichtige Renditeergebnisse.Zuallererst:
Unabhängig davon, ob Sie eine einzelne Instanz oder einen Cluster ausführen, empfehle ich Ihnen, sich auf die Rückgabeergebnisse der vier Parameter stat, commandstat, cpu und Memory zu konzentrieren, einschließlich der Ausführung des Befehls (z. B Ausführungszeiten und Ausführungszeit des Befehls, vom Befehl verwendete CPU-Ressourcen), Speicherressourcennutzung (z. B. Speichernutzung, Speicherfragmentierungsrate), CPU-Ressourcennutzung usw. Dies kann uns dabei helfen, den Betriebsstatus und den Ressourcenverbrauch des Befehls zu ermitteln Beispiel.Außerdem müssen Sie sich beim Aktivieren der RDB- oder AOF-Funktion auf das Rückgabeergebnis des Persistenzparameters konzentrieren, über den Sie den Ausführungsstatus der RDB oder AOF anzeigen können.
Wenn Sie einen Master-Slave-Cluster verwenden, sollten Sie sich auf das Rückgabeergebnis des Replikationsparameters konzentrieren, der den Echtzeitstatus der Master-Slave-Synchronisierung enthält.
Der INFO-Befehl liefert jedoch nur Überwachungsergebnisse in Textform und wird nicht visualisiert. Daher können wir in praktischen Anwendungen auch einige Open-Source-Tools von Drittanbietern verwenden, um die vom INFO-Befehl zurückgegebenen Ergebnisse zu visualisieren. Als nächstes werde ich über Prometheus sprechen, das über Plug-Ins die statistischen Ergebnisse von Redis visualisieren kann.
Redis-Exporter-Überwachung für Prometheus
Prometheusist ein Open-Source-Systemüberwachungs- und Alarm-Framework. Seine Kernfunktion besteht darin, Überwachungsdaten aus dem überwachten System abzurufen und sie mit demGrafana-Tool zur visuellen Anzeige zu kombinieren. Darüber hinaus können Überwachungsdaten in einer Zeitreihendatenbank gespeichert werden, um historische Abfragen durch das Betriebs- und Wartungspersonal zu erleichtern. Gleichzeitig erkennt Prometheus, ob die Überwachungsindikatoren des Systems den voreingestellten Schwellenwert überschreiten. Sobald der Schwellenwert überschritten wird, löst Prometheus einen Alarm aus.Diese Funktionen sind sehr wichtig für das tägliche Betriebs- und Wartungsmanagement des Systems. Prometheus hat ein Tool-Framework zur Nutzung dieser Funktionen implementiert. Solange wir Überwachungsdaten vom überwachten System erhalten können, können wir Prometheus zur Implementierung der Betriebs- und Wartungsüberwachung verwenden.
Prometheus stellt lediglich Plug-in-Funktionen zur Überwachung eines Systems bereit. Wir nennen Plug-ins-Exporter eigentlich eine Komponente, die Überwachungsdaten sammelt. Das vom Exporteur erfasste Datenformat entspricht den Anforderungen von Prometheus. Nachdem Prometheus die Daten erhalten hat, können diese angezeigt und gespeichert werden.
Redis-exporterwird zur Überwachung von Redis verwendet. Es stellt Prometheus den Betriebsstatus und verschiedene statistische Informationen zur Verfügung, die vom INFO-Befehl überwacht werden, zur visuellen Anzeige und für Alarmeinstellungen. Derzeit unterstützt Redis-Exporter die Redis-Versionen 2.0 bis 6.0 und verfügt über ein breites Anwendungsspektrum.Zusätzlich zum Abrufen des Betriebsstatus der Redis-Instanz kann Redis-Exporter auch die Größe von Schlüssel-Wert-Paaren und die Anzahl der Elemente von Sammlungstypdaten überwachen. Dies kann mithilfe der Befehlszeilenoption check-keys erreicht werden beim Ausführen von Redis-exporter.
Darüber hinaus können wir ein Lua-Skript entwickeln, um die Erfassung der erforderlichen Überwachungsdaten anzupassen. Anschließend verwenden wir die Befehlszeilenoption „scripts“, um Redis-exporter dieses spezielle Skript ausführen zu lassen, damit es die unterschiedlichen Überwachungsanforderungen der Geschäftsschicht erfüllen kann.
Abschließend möchte ich noch zwei Gadgets mit Ihnen teilen:redis-statundRedis Live. Im Vergleich zu Redis-Exporter handelt es sich bei diesen beiden um leichte Überwachungstools. Sie werden in Ruby bzw. Python entwickelt und zeigen auch visuell die vom INFO-Befehl bereitgestellten Informationen zum Ausführungsstatus der Instanz an. Obwohl diese beiden Tools derzeit selten aktualisiert werden, sind sie gute Referenzen, wenn Sie Ihre eigenen Redis-Überwachungstools entwickeln möchten.
Neben der Überwachung des Betriebsstatus von Redis ist die Datenmigration eine weitere häufige Betriebs- und Wartungsaufgabe. Als nächstes lernen wir etwas über Datenmigrationstools.
Manchmal müssen wir Daten zwischen verschiedenen Instanzen migrieren. Derzeit istRedis-shakeeines der am häufigsten verwendeten Datenmigrationstools, ein Tool, das von den Alibaba Cloud Redis- und MongoDB-Teams für die Redis-Datensynchronisierung entwickelt wurde.
Das grundlegende Funktionsprinzip von Redis-Shake besteht darin, zuerst den Redis-Shake-Prozess zu starten, der eine Redis-Instanz simuliert. Anschließend führen der Redis-Shake-Prozess und die Quellinstanz, von der die Daten migriert werden, eine vollständige Datensynchronisierung durch.
Dieser Vorgang ähnelt der vollständigen Synchronisierung von Redis-Master-Slave-Instanzen.
Die Quellinstanz entspricht der Hauptbibliothek und Redis-Shake entspricht der Slave-Bibliothek. Die Quellinstanz überträgt zuerst die RDB-Datei an Redis-Shake und Redis-Shake sendet die RDB-Datei an die Zielinstanz. Anschließend sendet die Quellinstanz die inkrementellen Befehle an Redis-shake, und Redis-shake ist für die Synchronisierung dieser inkrementellen Befehle mit der Zielinstanz verantwortlich.
Das folgende Bild zeigt den Datenmigrationsprozess von Redis-shake:
Einer der großen Vorteile von Redis-shake besteht darin, dass es mehrere Arten der Migration unterstützt.
Erstens unterstützt es sowohl die Datenmigration zwischen einzelnen Instanzen als auch die Datenmigration von Cluster zu Cluster.
Zweitensverwenden einige Redis-Slicing-Cluster (z. B. Codis) einen Proxy, um Anforderungsvorgänge zu empfangen, und Redis-Shake unterstützt auch die Datenmigration mit einem Proxy.
Da Redis-Shake außerdem vom Alibaba Cloud-Team entwickelt wurde, unterstützt Redis-Shake nicht nur die Open-Source-Version von Redis, sondern auch die Migration von Redis-Instanzen in der Cloud und Redis-Instanzen in der Cloud kann uns dabei helfen, das Ziel zu erreichen, Redis-Dienste in die Cloud zu verlagern.
Nach der Datenmigration müssen wir normalerweise vergleichen, ob die Daten in der Quellinstanz und der Zielinstanz konsistent sind. Wenn inkonsistente Daten vorhanden sind, müssen wir diese finden und aus der Zielinstanz entfernen oder die inkonsistenten Daten erneut migrieren.
Hier stelle ich Ihnen ein weiteres Tool zum Vergleich der Datenkonsistenz vor, nämlichRedis-full-check, das vom Alibaba Cloud-Team entwickelt wurde.
Das Funktionsprinzip von Redis-Full-Check ist sehr einfach: Die Daten in der Quellinstanz und der Zielinstanz werden vollständig verglichen, um die Datenüberprüfung abzuschließen. Um jedoch den Vergleichsaufwand für die Datenüberprüfung zu verringern, verwendet Redis-Full-Check eine Mehrrunden-Vergleichsmethode. In der ersten Überprüfungsrunde findet Redis-Full-Check alle Schlüssel auf der Quellinstanz und findet dann zum Vergleich die entsprechenden Werte aus der Quellinstanz und der Zielinstanz. Nach dem ersten Vergleich zeichnet redis-full-check die Daten in der Zielinstanz, die nicht mit der Quellinstanz übereinstimmen, in der SQLite-Datenbank auf. Ab der zweiten Verifizierungsrunde vergleicht Redis-full-check nur inkonsistente Daten, die nach dem Ende der vorherigen Runde in der Datenbank erfasst wurden. Um die normale Anforderungsverarbeitung der Instanz nicht zu beeinträchtigen, wird Redis-Full-Check nach jeder Vergleichsrunde für einen bestimmten Zeitraum angehalten. Mit fortschreitender inkrementeller Redis-Shake-Synchronisierung nehmen die inkonsistenten Daten in der Quellinstanz und der Zielinstanz allmählich ab, sodass wir nicht viele Überprüfungs- und Vergleichsrunden benötigen. Wir können die Anzahl der Vergleichsrunden selbst festlegen. Die spezifische Methode besteht darin, den Wert des Parameters „comparetimes“ auf die Anzahl der Runden festzulegen, die wir vergleichen möchten, wenn wir den Befehl „redis-full-check“ ausführen. Nachdem alle Vergleichsrunden abgeschlossen sind, sind die in der Datenbank aufgezeichneten Daten das endgültige Differenzergebnis zwischen der Quellinstanz und der Zielinstanz. Hier gibt es etwas zu beachten: Redis-full-check bietet drei Vergleichsmodi, die wir über den Parameter „comparemode“ festlegen können. Der Parameter „comparemode“ hat drei Werte, die folgende Bedeutung haben:CacheCloudist eine von Sohu für das Redis-Betriebs- und Wartungsmanagement entwickelte Cloud-Plattform. Es implementiert die automatische Bereitstellung und Verwaltung von Master-Slave-Clustern und Redis-Clustern Der Betrieb der Plattform erfolgt auf der Verwaltungsoberfläche.Für allgemeine Cluster-Betriebs- und Wartungsanforderungen bietet CacheCloud 5 Betriebs- und Wartungsvorgänge.
Offline-Instanz: Schließen Sie die Instanz und instanzbezogene Überwachungsaufgaben.CacheCloud sammelt nicht nur die vom INFO-Befehl bereitgestellten Echtzeit-Laufstatusinformationen der Instanz zur visuellen Anzeige, sondern speichert auch die Laufstatusinformationen der Instanz, wie z. B. Speichernutzung, Anzahl der Client-Verbindungen und Schlüssel- Wertepaar Datenvolumen. Wenn beim Betrieb von Redis ein Problem auftritt, kann das Betriebs- und Wartungspersonal auf diese Weise die gespeicherten historischen Aufzeichnungen abfragen und eine Analyse basierend auf den aktuellen Statusinformationen durchführen.
Wenn Sie eine einheitliche Plattform zum zentralen Hosten von Aufgaben im Zusammenhang mit der Redis-Instanzverwaltung haben möchten, ist CacheCloud ein gutes Tool.
Zusammenfassung
Wir haben zuerst den INFO-Befehl von Redis kennengelernt. Dieser Befehl ist die Grundlage für Überwachungstools, die eine Sekundärverarbeitung basierend auf den vom INFO-Befehl bereitgestellten Informationen durchführen. Wir haben außerdem drei Betriebs- und Wartungstools zur Überwachung des Echtzeit-Laufstatus von Redis kennengelernt, nämlich Redis-Exporter, Redis-Stat und Redis Live.
Was die Datenmigration betrifft, können wir entweder das Redis-Shake-Tool verwenden oder über RDB-Dateien oder AOF-Dateien migrieren.
Beim Betrieb und der Wartung von Redis können die vielen gerade genannten Open-Source-Tools bereits viele unserer Anforderungen erfüllen. Manchmal stellen jedoch verschiedene Geschäftsbereiche unterschiedliche Anforderungen an den Betrieb und die Wartung von Redis, und die direkte Verwendung vorgefertigter Open-Source-Tools kann möglicherweise nicht alle Anforderungen erfüllen. In diesem Fall wird empfohlen, eine sekundäre Entwicklung oder Selbstforschung durchzuführen Basierend auf Open-Source-Tools, um den geschäftlichen Nutzungsanforderungen besser gerecht zu werden.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter:
Einführung in die ProgrammierungDas obige ist der detaillierte Inhalt vonTeilen Sie einige nützliche Redis-Betriebs- und Wartungstools. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!