suchen
HeimDatenbankRedisBeispielanalyse der Hochverfügbarkeit im Redis-Sentry-Modus

    1. Vorwort

    Redis Hochverfügbarkeit verfügt über zwei Modi: Sentinel-Modus und Cluster-Modus. Dieser Artikel erstellt einen -Host basierend auf Sentinel-Modus Zwei von drei SentinelsRedis-Hochverfügbarkeitsdienst. 哨兵模式集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务。

    1、目标与收获

    一主两从三哨兵

    1. Ziele und Vorteile
    • Ein Master, zwei Slaves und drei SentinelsDer Redis-Dienst kann grundsätzlich die Hochverfügbarkeitsanforderungen kleiner und mittlerer Projekte erfüllen . Durch diesen Artikel werden die folgenden Ziele erreicht:

    • Planung und Konstruktion des Sentinel-Modus-Dienstes

    • Der Sentinel-Modus-Dienst ist zuverlässiger als der eigenständige Versionsdienst und eignet sich für die Lese- und Schreibtrennung, die Menge Die Datenmenge ist nicht groß und erfordert Zuverlässigkeit und Stabilität der Szene.

    • Client-Integration und Trennung von Lesen und Schreiben

    Stellen Sie über das Spring-Framework eine Verbindung zum Sentry-Modus her, um allgemeine Vorgänge in der Produktionsumgebung abzuschließen.

    2. Hafenplanung

    Beispielanalyse der Hochverfügbarkeit im Redis-Sentry-ModusHafenplanung ist der erste Schritt zur Vervollständigung dieser Lösung.

    2. Einzelmaschinensimulation

    Bei der Einzelmaschinensimulation werden Vorgänge auf einer physischen oder virtuellen Maschine simuliert, um den Zwischenprozess der ursprünglichen Lösung so weit wie möglich wiederherzustellen. Sie wird normalerweise beim Lernen verwendet Entwicklungsstadium.

    Um den Vorgang zu vereinfachen, trifft der Redis-Dienst die folgenden Konventionen: Die Daten werden nicht auf der Festplatte gespeichert. Die Konfigurationsdateien des Vordergrundknotens verwenden die Standardkonfigurationsdatei als Vorlage.
    (1) Dienstplanung

    1. Redis-Instanz Der Dienst weiß eindeutig, welcher Knoten der Masterknoten ist, wenn er zum ersten Mal ausgeführt wird und ein Master-Slave-Wechsel auftritt Es kann nicht angezeigt werden, um welchen Knoten es sich handelt. Der Knoten ist der Masterknoten und muss indirekt über die Befehlszeile abgefragt werden. KnotenHostPortRolleExtra-Konfigurationnode01127.0.0.16380Dienst als beim ersten Start node02127.0 .0.16381Diente als Sklave, als er zum ersten Mal gestartet wurde. Nachbildung von 127.0.0.1 6380 Zum ersten Mal gestartetReplik von 127.0.0.1 6380Es gibt keine Master-Slave-Unterscheidung zwischen Sentinel-Dienstknoten und alle Knoten sind gleichberechtigt. Wenn im Hauptdienst eine Ausnahme auftritt, löst der Sentinel-Dienst die Abstimmungsstrategie aus und wählt Kandidaten aus den Slave-Knoten der Redis-Instanz als neuen Hauptdienst aus.
    Zusätzliche Konfiguration bezieht sich auf die neue Konfiguration in der Knotenkonfigurationsdatei, wenn die Redis-Dienstinstanz zum ersten Mal gestartet wird. 2. Sentinel-Dienst

    Node

    Host

    PortZusätzliche Konfigurationnode01127.0.0.126380Sentinel Monitor Mymaster. 127 .0.0. 1 6380 2node02127.0. 0.126381Sentinel Monitor Mymaster 127.0.0.1 6380 2

    (2) Dienstkonfiguration

    1. Die anfängliche Konfigurationsdatei des Redis-Instanzknotens

    verwendet die Standardkonfigurationsdatei als Vorlage.

    Nachdem Knoten01 und Knoten02 die Konfigurationsdatei initialisiert haben, wird die Master-Slave-Beziehung zwischen den Knoten angezeigt und die folgende Konfiguration hinzugefügt:

    replicaof 127.0.0.1 6380
    2. Die anfängliche Konfigurationsdatei des Knotens verwendet die Standardkonfigurationsdatei als Vorlage.

    Fügen Sie nach der Initialisierung der Konfigurationsdateien von Knoten01, Knoten02 und Knoten03 die folgende Konfiguration hinzu:

    sentinel monitor mymaster 127.0.0.1 6381 2

    (3) Dienstverwaltung

    Beim Testen oder Lernen wird empfohlen, den Vordergrundprozessverwaltungsdienst zu verwenden, um die Simulation einzelner Punkte zu erleichtern von Fehlern, Anzeigen von Protokollen und Beobachten der Master-Slave-Umschaltung.

    Es wird empfohlen, den Supervisor-Verwaltungsdienst unter Produktionsbedingungen zu verwenden, der nicht nur einfach zu verwalten ist, sondern den Dienst auch nach einer abnormalen Beendigung automatisch neu starten kann. In Hochverfügbarkeitsszenarien werden drei physische Maschinen verwendet.

    1 Redis-Instanz Mit der Produktion müssen neue Funktionen hinzugefügt werden.

    (1) Grundlegende Integration
    Der Inhalt der Basisintegration besteht darin, mithilfe eines Java-Clients eine Verbindung zum hochverfügbaren Redis-Dienst im Sentinel-Modus herzustellen, um die Anforderungen für den normalen Betrieb von Einzelknoten-Fehlerdiensten zu erfüllen.

    1. Globale Konfigurationsdatei

    Die der globalen Konfigurationsdatei hinzugefügten Konfigurationsinformationen sind: Der Parameter master ist der Name des Sentinel-Dienstes, hier ist der Standardwert; > Parameter ist die Sentinel-Service-Liste (nicht Redis-Instanz-Service-Liste); der database-Parameter ist die Datenbank.

    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis80.conf --port 6380 --save '' --daemonize no 
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis81.conf --port 6381 --save '' --daemonize no
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis82.conf --port 6382 --save '' --daemonize no

    2. Die integrierte Konfiguration ist in das SpringBoot-System integriert. Der Kern besteht darin, eine LettuceConnectionFactory-Verbindungsfabrik zu erstellen, die problemlos in andere Frameworks unter Spring vererbt werden kann System.

    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel280.conf --port 26380 --daemonize no
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel281.conf --port 26381 --daemonize no
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel282.conf --port 26382 --daemonize no

    (2) Lese- und Schreibtrennung

    Die Basisintegration implementiert nur den Prozess des hochverfügbaren Redis-Dienstes. In der Produktionsumgebung müssen noch andere Konfigurationen hinzugefügt werden: Ändern Sie die Seriennummer der benutzerdefinierten Verbindungsdatenbank Poolkonfiguration; Lese- und Schreibtrennung.

    Unter der Voraussetzung einer hohen Verfügbarkeit wird die Funktion der Trennung von Lesen und Schreiben abgeleitet. Die Hauptbibliothek schließt die Leseanforderung ab (die Slave-Bibliothek lässt kein Schreiben zu). master参数为哨兵服务名,此处为默认值;nodes参数为哨兵服务列表(不是Redis实例服务列表);database参数为数据库。

    spring:
      redis:
        database: 0
        sentinel:
          nodes: 192.168.181.171:26380,192.168.181.171:26381,192.168.181.171:26382
          master: mymaster
    2、集成配置

    集成进SpringBoot体系,最核心的是创建LettuceConnectionFactory

    @Configuration
    public class RedisSentinelConfig {
        @Autowired
        private RedisProperties redisProperties;
        
        @Bean
        public RedisConnectionFactory lettuceConnectionFactory() {
            RedisProperties.Sentinel sentinel = redisProperties.getSentinel();
            HashSet<String> nodes = new HashSet<>(sentinel.getNodes());
            String master = sentinel.getMaster();
            RedisSentinelConfiguration config = new RedisSentinelConfiguration(master, nodes);
            config.setDatabase(redisProperties.getDatabase());
            return new LettuceConnectionFactory(config);
        }
    }

    Das obige ist der detaillierte Inhalt vonBeispielanalyse der Hochverfügbarkeit im Redis-Sentry-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme
    Dieser Artikel ist reproduziert unter:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
    Redis gegen andere Datenbanken: Eine vergleichende AnalyseRedis gegen andere Datenbanken: Eine vergleichende AnalyseApr 23, 2025 am 12:16 AM

    Im Vergleich zu anderen Datenbanken hat Redis die folgenden einzigartigen Vorteile: 1) extrem schnelle Geschwindigkeit, und Lese- und Schreibvorgänge befinden sich normalerweise auf Mikrosekunde; 2) unterstützt reichhaltige Datenstrukturen und Operationen; 3) Flexible Nutzungsszenarien wie Caches, Zähler und Veröffentlichung von Abonnements. Bei der Auswahl von Redis oder anderen Datenbanken hängt dies von den spezifischen Anforderungen und Szenarien ab. Redis spielt eine gute Leistung in leistungsstarken und niedrigen Latenzanwendungen.

    Redis 'Rolle: Erforschung der Datenspeicher- und VerwaltungsfunktionenRedis 'Rolle: Erforschung der Datenspeicher- und VerwaltungsfunktionenApr 22, 2025 am 12:10 AM

    Redis spielt eine Schlüsselrolle bei der Datenspeicherung und -verwaltung und ist durch seine mehreren Datenstrukturen und Persistenzmechanismen zum Kern moderner Anwendungen geworden. 1) Redis unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Sammlungen, geordnete Sammlungen und Hash -Tabellen und eignet sich für Cache und komplexe Geschäftslogik. 2) RDB und AOF sorgt durch zwei Persistenzmethoden für eine zuverlässige Speicherung und eine schnelle Wiederherstellung von Daten.

    Redis: NoSQL -Konzepte verstehenRedis: NoSQL -Konzepte verstehenApr 21, 2025 am 12:04 AM

    Redis ist eine NoSQL-Datenbank, die für einen effizienten Speicher und Zugriff auf groß angelegte Daten geeignet ist. 1.Redis ist ein Open Source -Speicherdatenstruktur -Speichersystem, das mehrere Datenstrukturen unterstützt. 2. Es bietet extrem schnelle Lektüre und Schreibgeschwindigkeiten, geeignet für Caching, Sitzungsmanagement usw. 3.Redis unterstützt die Persistenz und sorgt für die Datensicherheit durch RDB und AOF. 4. Verwendungsbeispiele umfassen grundlegende Schlüsselwertpaarvorgänge und erweiterte Sammeldeduplizierungsfunktionen. 5. Zu den häufigen Fehlern gehören Verbindungsprobleme, Datentypfehlanpassungen und Speicherüberlauf, sodass Sie auf das Debuggen achten müssen. 6. Vorschläge zur Leistungsoptimierung umfassen die Auswahl der geeigneten Datenstruktur und die Einrichtung von Strategien zur Speicherung der Speicherung.

    Redis: Anwendungsfälle und Beispiele in realer WeltRedis: Anwendungsfälle und Beispiele in realer WeltApr 20, 2025 am 12:06 AM

    Zu den Anwendungen von Redis in der realen Welt gehören: 1. Als Cache-System beschleunigen Sie die Datenbankabfrage, 2. Um die Sitzungsdaten von Webanwendungen zu speichern, um in Echtzeit-Rankings zu implementieren, 4. Um die Nachrichtenzustellung als Nachrichtenwarteschlange zu vereinfachen. Redis 'Vielseitigkeit und hohe Leistung lassen es in diesen Szenarien glänzen.

    Redis: Erforschen der Funktionen und FunktionenRedis: Erforschen der Funktionen und FunktionenApr 19, 2025 am 12:04 AM

    Redis sticht aufgrund seiner hohen Geschwindigkeit, Vielseitigkeit und reichhaltigen Datenstruktur auf. 1) Redis unterstützt Datenstrukturen wie Zeichenfolgen, Listen, Sammlungen, Hashs und geordnete Sammlungen. 2) Es speichert Daten über den Speicher und unterstützt RDB und AOF Persistenz. 3) Ausgehend von Redis 6.0 wurden Multi-Thread-E/A-Operationen eingeführt, was die Leistung in hohen Parallelitätsszenarien verbessert hat.

    Ist Redis eine SQL- oder NoSQL -Datenbank? Die Antwort erklärteIst Redis eine SQL- oder NoSQL -Datenbank? Die Antwort erklärteApr 18, 2025 am 12:11 AM

    RedisiscassifizedasanosqldatabaseBecauseituseSakey-valuedatamodelinSteAfThetitionalrelationalDatabasemodel

    Redis: Verbesserung der Anwendungsleistung und SkalierbarkeitRedis: Verbesserung der Anwendungsleistung und SkalierbarkeitApr 17, 2025 am 12:16 AM

    Redis verbessert die Anwendungsleistung und die Skalierbarkeit, indem sie Daten zwischengespeichert und verteilte Verriegelung und Datenpersistenz implementiert. 1) Cache -Daten: Verwenden Sie Redis, um häufig auf Daten zugegriffen, um die Geschwindigkeit des Datenzugriffs zu verbessern. 2) Verteilte Schloss: Verwenden Sie Redis, um verteilte Sperren zu implementieren, um die Sicherheit des Betriebs in einer verteilten Umgebung zu gewährleisten. 3) Datenpersistenz: Stellen Sie die Datensicherheit durch RDB- und AOF -Mechanismen sicher, um den Datenverlust zu verhindern.

    Redis: Erforschen des Datenmodells und der StrukturRedis: Erforschen des Datenmodells und der StrukturApr 16, 2025 am 12:09 AM

    Das Datenmodell und die Struktur von Redis umfassen fünf Haupttypen: 1. String: Verwendet, um Text oder binäre Daten zu speichern, und unterstützt Atomoperationen. 2. Liste: Bestellte Elementssammlung, geeignet für Warteschlangen und Stapel. 3. SET: Ungeordnete einzigartige Elemente, unterstützende Set -Operation. V. 5. Hash Table (Hash): Eine Sammlung von Schlüsselwertpaaren, die zum Speichern von Objekten geeignet sind.

    See all articles

    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

    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

    MantisBT

    MantisBT

    Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

    SAP NetWeaver Server-Adapter für Eclipse

    SAP NetWeaver Server-Adapter für Eclipse

    Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    VSCode Windows 64-Bit-Download

    VSCode Windows 64-Bit-Download

    Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

    SublimeText3 Linux neue Version

    SublimeText3 Linux neue Version

    SublimeText3 Linux neueste Version