Heim Datenbank Redis Was ist ein Redis-Cluster?

Was ist ein Redis-Cluster?

Jun 04, 2019 pm 04:31 PM
Redis -Cluster

Was ist ein Redis-Cluster?

Einführung in Redis Cluster

Redis Cluster ist eine Assembly, die den Datenaustausch zwischen mehreren Redis-Knoten ermöglicht.

Der Redis-Cluster unterstützt keine Befehle zum Verarbeiten mehrerer Schlüssel, da dies das Verschieben von Daten zwischen verschiedenen Knoten erfordert und somit nicht die gleiche Leistung wie Redis erzielt und unter Hochlastbedingungen zu Unvorhersehbarkeit führen kann. Fehler.

Der Redis-Cluster bietet durch Partitionierung ein gewisses Maß an Verfügbarkeit und kann weiterhin Befehle verarbeiten, wenn ein Knoten ausfällt oder nicht erreichbar ist:

Automatische Aufteilung der Daten auf verschiedene Knoten .

Kann weiterhin Befehle verarbeiten, auch wenn einige Knoten im gesamten Cluster ausfallen oder nicht erreichbar sind.

Daten-Sharding des Redis-Clusters

Der Redis-Cluster verwendet kein konsistentes Hashing, sondern führt das Konzept des Hash-Slots ein.

Redis-Cluster Es gibt 16384 Jeder Schlüssel wird von CRC16 überprüft und Modulo 16384 wird verwendet, um zu bestimmen, welcher Knoten im Cluster für einen Teil des Hash-Slots verantwortlich ist. Wenn der aktuelle Cluster beispielsweise über 3 Knoten verfügt, gilt Folgendes: 🎜>

Knoten A enthält Hash-Slots 0 bis 5500.

Knoten B enthält Hash-Slots 5501 bis 11000.

Knoten C enthält Hash-Slots 11001 bis 16384.

Diese Struktur erleichtert das Hinzufügen oder Löschen von Knoten. Wenn ich beispielsweise einen neuen Knoten D hinzufügen möchte, muss ich einige Slots von den Knoten A, B und C nach D übertragen. Wenn ich Knoten A entfernen möchte, müssen Sie Sie müssen die Slots in A auf die Knoten B und C verschieben und dann den A-Knoten ohne Slots aus dem Cluster entfernen, da das Verschieben des Hash-Slots von einem Knoten auf einen anderen Knoten den Dienst nicht stoppt. Daher ist das Hinzufügen, Löschen oder Ändern erforderlich Die Anzahl der Hash-Slots eines Knotens führt nicht dazu, dass der Cluster nicht mehr verfügbar ist.

Master-Slave-Replikationsmodell des Redis-Clusters

Um den Cluster still zu halten Verfügbar, wenn einige Knoten ausfallen oder die meisten Knoten nicht kommunizieren können, verwendet der Cluster ein Master-Slave-Replikationsmodell und jeder Knoten verfügt über N-1 Replikate.

In unserem Beispiel In einem Cluster mit drei Knoten A, B, und C, ohne Replikationsmodell, wenn Knoten B ausfällt, wird der gesamte Cluster als nicht verfügbar betrachtet, da ihm Steckplätze im Bereich von 5501-11000 fehlen.

Wenn wir jedoch einen Slave-Knoten A1 hinzufügen, B1, C1 zu jedem Knoten, wenn der Cluster erstellt wird (oder nach einiger Zeit), dann besteht der gesamte Cluster aus drei Master-Knoten und drei Slave-Knoten. Auf diese Weise wählt der Cluster B1 als aus Der neue Master-Knoten wird weiterhin bedient, und der gesamte Cluster ist nicht nicht verfügbar, weil der Steckplatz nicht gefunden werden kann

Wenn jedoch sowohl B als auch B1 ausfallen, ist der Cluster nicht verfügbar.

Redis-Konsistenzgarantie

Redis garantiert keine starke Datenkonsistenz. Dies bedeutet, dass der Cluster in der Praxis unter bestimmten Bedingungen Schreibvorgänge verlieren kann.

Der erste Grund ist, dass Der Cluster verwendet asynchrone Replikation. Der Schreibvorgang:

Der Client schreibt einen Befehl an den Masterknoten B.

Der Masterknoten B schreibt eine Antwort auf den Befehlsstatus des Clients.

Der Master-Knoten kopiert den Schreibvorgang auf seine Slave-Knoten B1, B2 und B3.

Das Kopieren des Befehls durch den Master-Knoten erfolgt nach der Rückgabe der Befehlsantwort, denn wenn jede Befehlsanforderung erforderlich ist Warten Sie, bis der Replikationsvorgang abgeschlossen ist. Die Geschwindigkeit, mit der der Masterknoten Befehlsanforderungen verarbeitet, wird erheblich verringert. Wir müssen einen Kompromiss zwischen Leistung und Konsistenz eingehen. Hinweis: Redis Cluster stellt möglicherweise in Zukunft eine synchrone Schreibmethode bereit. Eine andere Situation, in der ein Redis-Cluster Befehle verlieren kann, ist, wenn der Cluster über eine Netzwerkpartition verfügt und ein Client von einer kleinen Anzahl von Instanzen, einschließlich mindestens einem Masterknoten, isoliert ist.

Angenommen, der Cluster enthält sechs Knoten A, B, C, A1, B1 und C1, von denen A, B und C die Masterknoten sind und A1, B1 und C1 Die Slaves von A, B und C. Knoten und ein Client Z1. Unter der Annahme, dass im Cluster eine Netzwerkpartition vorliegt, kann der Cluster in zwei Parteien unterteilt werden. Die Mehrheitspartei enthält die Knoten A, C, A1, B1 und C1. und die kleine Gruppe enthält Knoten B und Clients.

Z1 kann weiterhin auf Masterknoten B schreiben. Wenn die Netzwerkpartition für kurze Zeit auftritt, funktioniert der Cluster weiterhin normal lang genug ist, damit die meisten Parteien B1 zum neuen Master wählen können, gehen die von Z1 in B geschriebenen Daten verloren.

Das obige ist der detaillierte Inhalt vonWas ist ein Redis-Cluster?. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

PHP-Tutorial
1596
276
Implementierung eines Redis-Clusters mit ThinkPHP6 Implementierung eines Redis-Clusters mit ThinkPHP6 Jun 20, 2023 am 08:36 AM

Mit der rasanten Entwicklung des Internets ist das Problem der hohen Parallelität immer wichtiger geworden. Als Reaktion auf dieses Problem ist das Aufkommen von Redis zu einer wichtigen Lösung geworden. Es löst das Problem des übermäßigen Lese- und Schreibdrucks in herkömmlichen relationalen Datenbanken durch Lesen und Schreiben im Speicher. Allerdings weist Redis mit einem einzelnen Knoten unter Bedingungen hoher Parallelität immer noch Leistungsengpässe auf, sodass Redis-Cluster verwendet werden müssen. In diesem Artikel wird beschrieben, wie Sie mit ThinkPHP6 einen Redis-Cluster implementieren. 1. Einführung in den Redis-Cluster Redis-Cluster ist ein offizieller Cluster, der von Redis bereitgestellt wird.

Wie implementiert man die Clusterbereitstellung des PHP-Datencaches über Redis? Wie implementiert man die Clusterbereitstellung des PHP-Datencaches über Redis? Aug 10, 2023 am 08:13 AM

Wie implementiert man die Clusterbereitstellung des PHP-Datencaches über Redis? Einführung: Wenn PHP-Anwendungen mit hoher Parallelität und großem Datenverkehr konfrontiert sind, kommt es häufig zu Engpässen bei der Datenbankleistung. Zu diesem Zeitpunkt kann die Verwendung der Caching-Technologie die Leistung und Parallelität des Systems erheblich verbessern. Als leistungsstarke In-Memory-Schlüsselwertdatenbank wird Redis häufig bei der Implementierung von Caching-Lösungen eingesetzt. In diesem Artikel wird erläutert, wie Sie die Clusterbereitstellung des PHP-Datencaches über Redis implementieren, um die Leistung und Skalierbarkeit weiter zu verbessern. 1. Überblick über den Redis-Cluster Redis

Redis-Cluster in Redis und wie man PHP verwendet Redis-Cluster in Redis und wie man PHP verwendet May 15, 2023 pm 03:22 PM

Redis ist eine leistungsstarke In-Memory-Speicherdatenbank für Schlüssel-Wert-Paare. Es bietet eine höhere Leistung und bessere Skalierbarkeit als herkömmliche RDBMS (relationales Datenbankverwaltungssystem). Einer der Vorteile von Redis besteht darin, dass es als Kerntechnologie verteilter Systeme verwendet werden kann. In diesem Artikel werden wir das Konzept von Redis Cluster und die Verwendung von Redis Cluster in PHP untersuchen. Was ist ein Redis-Cluster? Einfach ausgedrückt ist ein Redis-Cluster eine Ansammlung mehrerer Redis-Instanzen. Der Redis-Cluster ermöglicht es uns

Lernen Sie Datenbankfunktionen in der Go-Sprache und implementieren Sie Lese- und Schreibvorgänge im Redis-Cluster Lernen Sie Datenbankfunktionen in der Go-Sprache und implementieren Sie Lese- und Schreibvorgänge im Redis-Cluster Jul 29, 2023 pm 12:21 PM

Lernen Sie die Datenbankfunktionen in der Go-Sprache und implementieren Sie Lese- und Schreibvorgänge im Redis-Cluster. Einführung: Datenbanken sind ein unverzichtbarer Bestandteil heutiger Internetanwendungen, und die Go-Sprache verfügt als einfache und effiziente Programmiersprache auch über gute Datenbankbetriebsfunktionen. In diesem Artikel wird erläutert, wie Sie Datenbankfunktionen in der Go-Sprache verwenden und Lese- und Schreibvorgänge im Redis-Cluster implementieren. 1. Datenbankfunktionen in der Go-Sprache Datenbankoperationen in der Go-Sprache werden hauptsächlich über das Datenbank-/SQL-Paket implementiert. Dieses Paket stellt grundlegende Daten bereit

Redis- und Node.js-Clusterlösung: So erreichen Sie Hochverfügbarkeit Redis- und Node.js-Clusterlösung: So erreichen Sie Hochverfügbarkeit Jul 29, 2023 pm 05:42 PM

Clusterlösung für Redis und Node.js: So erreichen Sie Hochverfügbarkeit Einführung: Mit der rasanten Entwicklung des Internets ist die Datenverarbeitung immer umfangreicher und komplexer geworden. Um eine hohe Verfügbarkeit und Skalierbarkeit des Systems sicherzustellen, müssen wir eine verteilte Clusterarchitektur verwenden, um den Anforderungen der Speicherung und Verarbeitung großer Datenmengen gerecht zu werden. Als leistungsstarke In-Memory-Datenbank kann Redis in Kombination mit Node.js als Back-End-Programmiersprache eine hochverfügbare verteilte Clusterlösung aufbauen. In diesem Artikel wird erläutert, wie Redis und Node.js zur Implementierung verwendet werden

Redis- und PHP-Clusterlösung: So erreichen Sie hohe Verfügbarkeit und Skalierbarkeit Redis- und PHP-Clusterlösung: So erreichen Sie hohe Verfügbarkeit und Skalierbarkeit Jul 30, 2023 pm 08:51 PM

Clusterlösung von Redis und PHP: So erreichen Sie hohe Verfügbarkeit und Skalierbarkeit Einführung: Redis ist eine Open-Source-Hochleistungs-In-Memory-Datenbank, die häufig zum Erstellen schneller und skalierbarer Anwendungen verwendet wird. Als beliebte serverseitige Skriptsprache kann PHP mit Redis verwendet werden, um Clusterlösungen mit hoher Verfügbarkeit und Skalierbarkeit zu erreichen. In diesem Artikel wird die Verwendung von Redis und PHP zum Aufbau eines hochverfügbaren und skalierbaren Clusters vorgestellt und anhand von Codebeispielen ausführlich erläutert. 1. Aufbau, Installation und Konfiguration des Redis-Clusters Re

So verwenden Sie die Sprachen Redis und Julia, um hochverfügbare Clusterfunktionen zu implementieren So verwenden Sie die Sprachen Redis und Julia, um hochverfügbare Clusterfunktionen zu implementieren Sep 20, 2023 am 10:58 AM

So implementieren Sie mit den Sprachen Redis und Julia hochverfügbare Clusterfunktionen. Einführung: Mit der Entwicklung des Internetgeschäfts werden die Anforderungen an die Systemverfügbarkeit immer höher. Um sicherzustellen, dass Systeme im Falle eines Ausfalls weiterhin Dienste bereitstellen können, ist Hochverfügbarkeit in verschiedenen Branchen zu einer der zentralen Anforderungen geworden. In diesem Artikel wird die Verwendung der Redis- und Julia-Sprachen zur Implementierung hochverfügbarer Clusterfunktionen vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Was ist ein Hochverfügbarkeitscluster? Ein Hochverfügbarkeitscluster organisiert mehrere Knoten zu einem Gesamtsystem.

Redis-Clustering: Aufbau skalierbarer und hochverfügbarkeitssysteme Redis-Clustering: Aufbau skalierbarer und hochverfügbarkeitssysteme Apr 08, 2025 am 12:09 AM

Rediscluster ermöglicht die horizontale Skalierung und hohe Verfügbarkeit durch Daten Sharding und Master-Sklave-Replikation. 1) Daten Sharding: Daten über mehrere Knoten über Hash -Slots hinweg verteilen. 2) Master-Slave-Replikation: Jeder Hash-Steckplatz verfügt über einen Masterknoten und einen Slaveknoten, um eine hohe Datenverfügbarkeit zu gewährleisten. 3) Failover: Automatisches Failover wird durch Erkennung von Herzschlag und Stimmrechten erreicht, um die Kontinuität der Service zu gewährleisten.

See all articles