Die folgende Kolumne stellt Ihnen Redis-TutorialAnalyse des Redis-Prinzips und der Implementierung vor. Ich hoffe, es wird Freunden in Not hilfreich sein! 1 Was ist Redis? Standard für MySQL, es gibt verschiedene Implementierungsklassen, die es implementieren. Die, die wir häufig verwenden, ist Druid. Für Redis verwenden wir normalerweise Jedis (das uns auch den Verbindungspool JedisPool bereitstellt). In Redis ist der Schlüssel byte[] (String) Datenstruktur (Wert) von Redis:
String, Liste, Set, Orderset, Hash2 Verwendung von Redis
Redis zuerst installieren, dann ausführen, Abhängigkeiten in die POM-Datei einführen und Abhängigkeiten hinzufügen zu der Klasse, die Sie verwenden möchten Redis-Cache Die Datei „mapper.xml“ konfiguriert den vollständig qualifizierten Namen von Redis. Führen Sie die redis.properties-Datei von redis ein (Sie können sie verwenden, wenn Sie die Konfiguration ändern möchten).
Anwendungsszenario:
String:
1 speichert Objekte vom Typ JSON, 2 Zähler, 3 Youku-Video-Likes usw.Liste (doppelt verknüpfte Liste)
1 kann verwendet werden. Die Liste von Redis simuliert Warteschlange, Heap, Stapel 2 Moments-Likes (eine Moments-Inhaltsangabe, mehrere Likes-Anweisungen) legt fest: Format des Moments-Inhalts:
1, Inhalt: Benutzer:x: post:x Inhalt zum Speichern;
2, wie: post:x:gute Liste zum Speichern; (nehmen Sie den entsprechenden Avatar heraus und zeigen Sie ihn an)
Hash (Hashmap)
3 String und Hash Der Datenunterschied
Bei der Übertragung über das Netzwerk muss es serialisiert werden, bevor es über das Netzwerk übertragen werden kann. Bei Verwendung des String-Typs muss es dann serialisiert werden, und der Hash muss ebenfalls serialisiert werden serialisiert, daher kann beim Speichern viel Hash gespeichert werden, bei der Deserialisierung ist die Deserialisierung von Zeichenfolgen jedoch relativ gering und die Serialisierung und Deserialisierung von Hash ist relativ Komplizierter ist es, wenn die Daten je nach Geschäftsszenario häufig geändert werden. Wenn die Daten nicht häufig geändert werden, können Sie Hash verwenden, da Hash umfangreicher ist und eine Vielzahl von Daten speichern kann vom Datentyp
4 Redis-Persistenzmethode:
kann die Daten im Speicher asynchron auf die Festplatte schreiben, zwei Methoden: RDB (Standard) und AOF
RDB-Persistenzprinzip: Wird dann durch den Befehl bgsave ausgelöst Der übergeordnete Prozess führt eine Fork-Operation aus, um einen untergeordneten Prozess zu erstellen, und der untergeordnete Prozess erstellt eine RDB-Datei, generiert eine temporäre Snapshot-Datei basierend auf dem Speicher des übergeordneten Prozesses und führt nach Abschluss eine atomare Ersetzung der Originaldatei durch (alle Snapshots).Vorteile: Es handelt sich um eine kompakte und komprimierte Binärdatei, die RDB lädt, um Daten viel schneller wiederherzustellen als AOF.
Nachteile: Aufgrund des großen Overheads der RDB-Generierung jedes Mal und der Nicht-Echtzeit-Persistenz,AOF-Persistenzprinzip: Nach dem Einschalten fügt Redis jedes Mal, wenn es einen Befehl zum Ändern von Daten ausführt, diesen Befehl hinzu die AOF-Datei.
Vorteile: Echtzeit-Persistenz. Nachteile: Daher wird die AOF-Dateigröße allmählich größer und es müssen regelmäßig Umschreibvorgänge durchgeführt werden, um die Dateigröße zu reduzieren. Das Laden ist langsam.5 Warum ist Redis so schnell Single-Threaded? Redis ist Single -threaded, aber warum ist es immer noch so schnell? Nun,
Grund 1: Einzelner Thread, vermeidet Konkurrenz zwischen Threads
Grund 2: Es befindet sich im Speicher und verwendet Speicher, was die Festplattennutzung reduzieren kann
Grund 3: Multiplexing-Modell , mit Puffer Das Konzept wird durch das Selektormodell implementiert
6 So betreiben Sie Redis, wenn der Master ausgefallen ist
Redis bietet einen Sentinel-Modus. Wenn der Master ausgefallen ist, können Sie andere auswählen, um ihn zu ersetzen Im Sentinel-Modus werden drei geplante Aufgaben überwacht. 6.1 Alle 10 Sekunden sendet jeder S-Knoten (Sentinel-Knoten) den Info-Befehl an den Master-Knoten und den Slave-Knoten, um die neueste Topologiestruktur zu erhalten.
Knoten im Redis-Cluster realisieren die Knotenkommunikation über Ping/Pong-Nachrichten. Die Nachrichten können nicht nur Knoten-Slot-Informationen weitergeben, sondern auch andere Status wie: Master-Slave-Status, Knotenausfall usw. Daher wird die Fehlererkennung auch durch den Nachrichtenverbreitungsmechanismus realisiert. Zu den Hauptverbindungen gehören: subjektiver Offline-Modus (pfail) und objektiver Offline-Modus (fail):
Das obige ist der detaillierte Inhalt vonAnalysieren Sie das Redis-Prinzip und die Implementierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!