Inhaltsverzeichnis
Springboot integriert Redis, um Partitionen zu ändern
Der Ursprung des Problems
Alte Versionslösung
Die folgenden Beans müssen zur Redis-Konfigurationsklasse hinzugefügt werden:
Heim Datenbank Redis Wie integriert Springboot Redis, um Partitionen zu ändern?

Wie integriert Springboot Redis, um Partitionen zu ändern?

May 27, 2023 pm 07:16 PM
redis springboot

Springboot integriert Redis, um Partitionen zu ändern

Der Ursprung des Problems

In letzter Zeit wird Springboot verwendet, um Redis zu integrieren. Eine dynamische Datenquelle des Systems stellt eine Verbindung zu verschiedenen Datenbanken her und speichert die verwendeten Redis zwischen in verschiedenen Redis-Partitionen, also unterschiedlich in der Bibliothek.

Alte Versionslösung

Die alte Version hier bezieht sich auf die Version vor 2.0. Die 1.5.9, die ich verwendet habe, ist in Ordnung.

Die Konfigurationsklasse von Redis wird hier nicht veröffentlicht, es gibt viele davon online.

1. Verwenden Sie JedisConnectionFactory, um

@Autowired
JedisConnectionFactory jedisConnectionFactory;
jedisConnectionFactory.setDatabase(database);
Nach dem Login kopieren

2 zu ändern. Verwenden Sie redisTemplate, um

redisTemplate.getConnectionFactory().getConnection().select(database);
Nach dem Login kopieren

Die beiden oben genannten Methoden müssen der Redis-Konfigurationsklasse nicht speziell hinzugefügt werden bezieht sich hier auf nach 2.0 Ja, ich verwende 2.0.3

Die folgenden Beans müssen zur Redis-Konfigurationsklasse hinzugefügt werden:

Partitionierung ist die Art und Weise, wie Sie die Daten auf mehrere Redis-Instanzen verteilen, sodass jede Instanz nur einen Teil der Daten enthält.

Warum Partitionierung nützlich ist

Redis-Partitionierung hat zwei Hauptziele:

Sie ermöglicht größere Datenbanken und nutzt den kombinierten Speicher vieler Computer. Ohne Partitionierung sind Sie auf den Speicher eines einzelnen Computers beschränkt.

Es ermöglicht die Erweiterung der Rechenleistung auf mehrere Kerne und mehrere Computer sowie die Erweiterung der Netzwerkbandbreite auf mehrere Computer und Netzwerkadapter.

Angenommen, wir haben 4 Redis-Instanzen (R0, R1, R2, R3) mit vielen Schlüsseln, die Benutzer darstellen, z. B. Benutzer: 1, Benutzer: 2 usw., dann gibt es beim Speichern eines Schlüssels viele Möglichkeiten, wie wir dies tun können.
  1. Der einfachste Weg ist die Partitionierung nach Bereich, d. h. die Zuweisung von Daten zur angegebenen Redis-Instanz entsprechend dem Zuordnungsbereich des Objekts. Beispielsweise legen wir fest, dass diejenigen mit IDs von 0 bis 10000 R0, 10001 bis 20000 R1 usw. zugewiesen werden. Diese Methode ist möglich, aber ein Nachteil besteht darin, dass eine Tabelle benötigt wird, um diese Zuordnungsbeziehung aufrechtzuerhalten. Diese Tabelle muss verwaltet werden, und jeder Schlüssel erfordert eine solche Tabelle. Daher ist die Bereichspartitionierung in Redis im Allgemeinen verpönt, da sie viel weniger effizient ist als andere Partitionierungsmethoden.

    Zusätzlich zur Bereichspartitionierung gibt es eine weitere Methode, die Hash-Partitionierung:
  2. Schritt 1. Nehmen Sie den Schlüssel und wenden Sie eine Hash-Funktion an, um ihn in eine Zahl umzuwandeln. Wenn der Schlüssel beispielsweise foobar ist und die Hash-Funktion crc32 ist, dann gibt crc32(foobar) 93024922 aus.

    Schritt 2. Verwenden Sie Modulo-Arithmetik (Modulo) für diese Zahl, um sie in eine direkte Zahl von 0 bis 3 umzuwandeln, sodass diese Zahl einer meiner vier Redis-Instanzen zugeordnet werden kann. Beispiel: 93024922 % 4 = 2, daher sollte foobar auf der R2-Instanz gespeichert werden.
(PS: Führen Sie zunächst eine Hash-Operation für den Schlüssel durch, um eine Zahl zu erhalten, und ermitteln Sie dann mithilfe des Modulo dieser Zahl, auf welcher Instanz die endgültigen Daten gespeichert werden sollen.)

Es gibt viele Möglichkeiten zur Partitionierung Die beiden oben genannten Beispiele sollten Sie verstehen können. Eine fortgeschrittene Form der Hash-Partitionierung wird als konsistentes Hashing bezeichnet und von mehreren Redis-Clients und -Brokern implementiert.

Verschiedene Partitionsimplementierungen

Client-Partitionierung: Für einen bestimmten Schlüssel wählt der Client direkt den richtigen Knoten zum Lesen und Schreiben aus. Viele Redis-Clients implementieren eine clientseitige Partitionierung.

Proxy-Partition: Der Client sendet eine Anfrage an einen Proxy und der Proxy kommuniziert mit Redis. Der Proxy wählt basierend auf unserer Konfiguration die richtige Redis-Instanz aus.

Abfrageweiterleitung: Sie können Ihre Anfrage an jede Redis-Instanz senden und die Instanz leitet Ihre Anfrage an den richtigen Server weiter.

(PS: Für einen bestimmten Schlüssel besteht die Aufgabe der Partitionierung darin, eine korrekte Redis-Instanz auszuwählen. Dieser Auswahlprozess kann dann vom Client, Agenten oder der Redis-Instanz durchgeführt werden.)

Nachteile der Partitionierung

1, Vorgänge mit mehreren Schlüssel werden normalerweise nicht unterstützt. Für Schlüssel, die zwei verschiedenen Redis-Instanzen zugeordnet sind, können Sie keine Einfügevorgänge für sie ausführen.

2. Redis-Transaktionen können nicht für Vorgänge mit mehreren Schlüsseln verwendet werden

3 Die Partitionsgranularität ist entscheidend, daher ist es unmöglich, die Daten mit einem einzigen sehr großen Schlüssel (z. B. einem sehr großen sortierten Satz) aufzuteilen 4. Bei der Verwendung von Partitionen wird die Datenverarbeitung komplizierter. Beispielsweise müssen Sie mehrere RDB/AOF-Dateien verarbeiten. Um die Daten zu sichern, müssen persistente Dateien von mehreren Instanzen und Hosts aggregiert werden.

5. Das Hinzufügen und Löschen von Kapazität (Speicherplatz) wird komplizierter. Beispielsweise unterstützt Redis Cluster eine transparente Datenneuverteilung, die zur Laufzeit Knoten hinzufügt und entfernt, andere Systeme wie Clientpartitionen und Broker unterstützen diese Funktion jedoch nicht. Hier hilft jedoch eine Technik namens Pre-Sharding.

Datenspeicher oder Cache?

Wenn Redis als Datenspeicher verwendet wird, muss ein bestimmter Schlüssel immer derselben Redis-Instanz zugeordnet werden. Bei Verwendung als Cache stellt es kein großes Problem dar, wenn ein bestimmter Knoten nicht verfügbar ist.

Konsistente Hashing-Implementierungen sind normalerweise in der Lage, zu anderen Knoten zu wechseln, wenn der bevorzugte Knoten für einen bestimmten Schlüssel nicht verfügbar ist. Wenn ein neuer Knoten hinzugefügt wird, werden ebenfalls einige der neuen Schlüssel auf dem neuen Knoten gespeichert.

  • Wenn Sie Redis als Cache verwenden, ist die Skalierung durch konsistentes Hashing einfach.

  • Wenn Redis als Speicher verwendet wird, wird eine feste Schlüssel-zu-Knoten-Zuordnung verwendet, sodass die Anzahl der Knoten festgelegt sein muss und nicht geändert werden kann. Redis Cluster ist ein praktikables System, wenn Schlüssel zwischen Knoten neu verteilt werden müssen.

Das obige ist der detaillierte Inhalt vonWie integriert Springboot Redis, um Partitionen zu ändern?. 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

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.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So sehen Sie alle Schlüssel in Redis So sehen Sie alle Schlüssel in Redis Apr 10, 2025 pm 07:15 PM

Um alle Schlüssel in Redis anzuzeigen, gibt es drei Möglichkeiten: Verwenden Sie den Befehl keys, um alle Schlüssel zurückzugeben, die dem angegebenen Muster übereinstimmen. Verwenden Sie den Befehl scan, um über die Schlüssel zu iterieren und eine Reihe von Schlüssel zurückzugeben. Verwenden Sie den Befehl Info, um die Gesamtzahl der Schlüssel zu erhalten.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.

So verwenden Sie Redis Lock So verwenden Sie Redis Lock Apr 10, 2025 pm 08:39 PM

Um die Operationen zu sperren, muss die Sperre durch den Befehl setNX erfasst werden und dann den Befehl Ablauf verwenden, um die Ablaufzeit festzulegen. Die spezifischen Schritte sind: (1) Verwenden Sie den Befehl setNX, um zu versuchen, ein Schlüsselwertpaar festzulegen; (2) Verwenden Sie den Befehl Ablauf, um die Ablaufzeit für die Sperre festzulegen. (3) Verwenden Sie den Befehl Del, um die Sperre zu löschen, wenn die Sperre nicht mehr benötigt wird.

So löschen Sie Redis -Daten So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

Was tun, wenn Redis-Server nicht gefunden werden kann Was tun, wenn Redis-Server nicht gefunden werden kann Apr 10, 2025 pm 06:54 PM

Schritte zur Lösung des Problems, das Redis-Server nicht finden kann: Überprüfen Sie die Installation, um sicherzustellen, dass Redis korrekt installiert ist. Setzen Sie die Umgebungsvariablen Redis_host und Redis_port; Starten Sie den Redis-Server Redis-Server; Überprüfen Sie, ob der Server Redis-Cli Ping ausführt.

See all articles