Momentan hat meine Spring-Boot-Anwendung einen Redis-Server.Redis-Replikation und Cluster-Unterschied
Nun, dass ich den Redis-Server hoch verfügbar machen möchte, welchen Ansatz sollte ich folgen?
Zum Beispiel würde ich Master, Sklaven und Sentinel eingerichtet haben, wo, wenn mein Master automatisch abstürzt, neue Master gewählt und Anwendung funktioniert normal. Wird diese Vorgehensweise Replikation mit automatischem Failover genannt?
Auf der anderen Seite wie unterscheidet sich Cluster von oben genannten (Replikation) eingerichtet. Hat es auch die Unterstützung von Sentinel-Servern für automatisches Failover?
Und in Bezug auf Daten, ich lese, geteilte Daten zwischen mehreren Knoten Cluster statt Replikation hat die genaue Kopie der Daten des Masters in allen Slaves. In diesem Fall Splitting Daten in mehreren Knoten eines Clusters, würde zu veralteten Daten Situation führen, wenn einige Knoten gehen?
Aber dann in einem redis Cluster einig Master-Knoten konnte nicht einige Daten Recht hat? In diesem Fall, wenn eine Anfrage zum Abrufen von Daten kommt, durchsucht sie die Daten in allen Mastern? Wenn nicht, führt das zu einer veralteten Datensituation? – Harshana
Wenn ein Client eine Verbindung zu einem Cluster-Knoten herstellt und nach Daten fragt, antwortet der Knoten entweder mit den Daten, falls vorhanden, oder teilt dem Client mit, welcher andere Knoten die Daten enthält. Es sollte keine veralteten Daten geben, wenn nicht etwas schief geht, siehe https://redis.io/topics/cluster-tutorial#redis-cluster-consistency- guarantees –
Tatsächlich muss der Client den Knoten kennen, auf den er trifft. Alle Java-Clients tun dies, so dass der Client den Knoten auswählt, mit dem er spricht, um einen bestimmten Schlüssel zu lesen oder zu schreiben. – mp911de