Dieser Artikel stellt zwei Lösungen zur Synchronisierung von MySQL und Redis Cache vor
1. Lösung 1 (UDF)Szenarioanalyse: Wenn wir Datenoperationen in der MySQL-Datenbank durchführen, werden die entsprechenden Daten gleichzeitig mit Redis synchronisiert. Nach der Synchronisierung mit Redis wird die Abfrageoperation von Redis aus gesucht. Der Ablauf ist in etwa wie folgt: Setzen Sie einen Trigger für die in MySQL zu verarbeitenden Daten und überwachen Sie den Vorgang Wenn der Client (NodeServer) Daten in MySQL schreibt, wird der Trigger ausgelöst und die MySQL UDF-Funktion wird nach dem Trigger aufgerufen Die UDF-Funktion kann Daten in Redis schreiben, um einen Synchronisierungseffekt zu erzielen Lösungsanalyse:
Demo-FallUnten ist die MySQL-Tabelle Unten ist der Analysecode von UDF Definieren Sie den entsprechenden Trigger 2. Lösung 2 (Binlog analysieren)Bevor wir Lösung 2 vorstellen, stellen wir zunächst das Prinzip der MySQL-Replikation vor, wie in der folgenden Abbildung dargestellt:
Lösung 2 ist:
Das Folgende ist beispielsweise eine Analyse einer Cloud-Datenbankinstanz: Die Cloud-Datenbank und die lokale Datenbank stehen in einer Master-Slave-Beziehung. Die Cloud-Datenbank ist die primäre Datenbank, die hauptsächlich Schreibdienste bereitstellt, und die lokale Datenbank ist die sekundäre Datenbank, die Daten aus der primären Datenbank liest. Nachdem die lokale Datenbank die Daten gelesen hat, analysiert sie das Bin-Protokoll und schreibt die Daten dann zur Synchronisierung in Redis. Der Client liest dann die Daten aus Redis. Die Schwierigkeit dieser technischen Lösung liegt darin, das MySQL-Bin-Protokoll zu analysieren. Dies erfordert jedoch ein sehr tiefes Verständnis von Binlog-Dateien und MySQL. Gleichzeitig ist der Arbeitsaufwand für die Analyse von Binlog zur Erreichung der Synchronisierung sehr groß, da Binlog in mehreren Formen wie Anweisungs-/Zeilen-/Mischebene vorliegt. Canal Open Source-TechnologieCanal ist ein Open-Source-Projekt von Alibaba, das in reinem Java entwickelt wurde. Basierend auf der inkrementellen Protokollanalyse der Datenbank bietet es inkrementelles Datenabonnement und -verbrauch. Derzeit unterstützt es hauptsächlich MySQL (unterstützt auch MariaDB). Die Open-Source-Referenzadresse lautet: https://github.com/liukelin/canal_mysql_nosql_sync Funktionsweise (Imitation der MySQL-Replikation):
Architektur: Server stellt eine Kanallaufinstanz dar, die einer JVM entspricht Eine Instanz entspricht einer Datenwarteschlange (ein Server entspricht 1..n Instanzen) Instanzmodul:
Der allgemeine Analysevorgang läuft wie folgt ab:
Weitere Informationen zu Cancel finden Sie unter Baidu. Nachfolgend sehen Sie das Betriebstopologiediagramm Bei der Synchronisierung von MySQL-Tabellen wird das Verantwortungskettenmodell verwendet, und jede Tabelle entspricht einem Filter . Beispielsweise sieht das in zvsync verwendete Klassendesign wie folgt aus: Im Folgenden sind die im konkreten zvsync verwendeten Klassen aufgeführt . Immer wenn eine Tabelle hinzugefügt oder gelöscht wird, kann sie direkt hinzugefügt oder gelöscht werden. 3. WeitereDie obige Einführung in diesem Artikel befasst sich mit der Synchronisierung von MySQL zum Cache. In der tatsächlichen Entwicklung verwenden manche Benutzer jedoch möglicherweise die folgende Lösung:
Damit ist dieser Artikel über die Synchronisierungslösung für MySQL und Redis-Cache abgeschlossen. Weitere Informationen zur Synchronisierung von MySQL und Redis-Cache finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Vue implementiert zwei Methoden zur Steuerung der Routing-Berechtigung
>>: Verwenden Sie CSS, um einen kreisförmigen Welleneffekt zu erzielen
Inhaltsverzeichnis 1. Beispielszenario 1.1. Legen...
Codeeffekte werden häufig in unterschiedlichen Br...
Weil ich ein Python-Programm geschrieben und inte...
Vorwort Bei der Verwaltung und Wartung des Linux-...
Von: https://blog.csdn.net/qq_44761243/article/de...
Ich habe erst vor Kurzem angefangen, mich mit Dat...
Hyperlink, auch „Link“ genannt. Man kann sagen, d...
Inhaltsverzeichnis Vorwort Was ist Deno? Vergleic...
brauchen Das Konfigurieren von DingTalk-Alarmen i...
Dieser Artikel veranschaulicht anhand von Beispie...
Beim Produktdesign legen Designer Wert darauf, das...
In diesem Artikel wird der spezifische JavaScript...
Ergebnisse erzielen Bauen Sie zunächst mit HTML e...
Code kopieren Der Code lautet wie folgt: <styl...
Der erste Schritt besteht darin, die kostenlose I...