1. Vorschläge zur Optimierung der Redis-Bereitstellungsstruktur
1. Der Master führt keine AOF- oder RDB-Persistenz durch, der Slave führt jedoch eine AOF-Persistenz durch. Es wird empfohlen, gleichzeitig eine RDB-Persistenz durchzuführen
2. Alle Meister erhöhen den Sklaven
3. Der Master kann mit der M-S-S-Methode nicht mehr als 2 Slaves mounten. Wenn Sie eine hohe Verfügbarkeit, also Master-Slave-Switching, sicherstellen möchten, können Sie den Keepalived-Mechanismus verwenden.
Hinweis: Die oben genannten Vorschläge basieren auf der unangemessenen Redis-Bereitstellungsstruktur Lösungen in der Sina Weibo- und Taobao-Architektur. Geben Sie
2. Vorschläge zur Redis-Konfigurationsoptimierung
1.tcp-keepalive 60
Verhindern Sie, dass die Verbindung aufgrund einer Befehlsausführung getrennt wird Es dauert zu lange, bis das Timeout-Timeout erreicht ist. Und kann die Erkennung von Verbindungsfehlern verbessern.
2.stop-writes-on-bgsave-error no
Bei einem Fehler wird das Schreiben von Daten auf die Festplatte gestoppt tritt im bgsave-Snapshot-Vorgang auf, sodass alle nachfolgenden Schreibvorgänge fehlschlagen. Um nachfolgende Schreibvorgänge nicht zu beeinträchtigen, muss der Wert in „no“ geändert werden.
3.rdbchecksum no
um die Korrektheit der RDB-Daten zu überprüfen, wodurch 10 % der Leistung verloren gehen, daher wird empfohlen, sie zu schließen.
4.auto-aof-rotate-max-size 20gb
auto-aof-rotate-max-total 4 auto-aof-rewrite-percentage 0 (关闭rewrite模式)
Ändern Sie den AOF-Rewrite-Modus in den Rotationsmodus, dh schalten Sie die AOF-Online-Echtzeit-Rewrite-Funktion auf Offline-Betrieb um. Eine AOF-Datei wird in mehrere Kopien geschnitten (ähnlich wie beim Protokollschneiden), was die Redis-Leistung verbessert und die Speichernutzung verbessert 🎜>
5.no-appendfsync-on-rewrite ja E/A-Blockierung vermeiden, wenn neu geänderte Daten auf die Festplatte geleert werdenHinweis: Bei den oben genannten handelt es sich um Optimierungsvorschläge, die auf einer unangemessenen Redis-Konfiguration basieren 3. Vorschläge zur Systemkernkonfiguration1. Um die E/A-Blockierung zu verringern, bearbeiten Sie/etc/sysctl.conf und fügen Sie die folgende Konfiguration hinzu:vm.dirty_background_ratio = 5 vm.dirty_ratio = 10
2. RDB-Modus aktiviert, um Fork-Fehler zu vermeiden
Bearbeiten Sie /etc/sysctl.conf, ändern Sie vm .overcommit_memory=1,
und dann sysctl -p, damit die Konfigurationsdatei wirksam wird
Bemerkungen: Das Obige sind die Vorschläge zur Systemkerneloptimierung basierend auf den Testergebnissen
Folgeplan:
Das Obige sind die Optimierungsvorschläge aus architektonischer Sicht. In Zukunft werden wir analysieren, ob der Speichertyp aus geschäftlicher Sicht sinnvoll ist usw.
Hinweis:
Bezüglich der Aufteilung von heißen und kalten Daten können Sie den folgenden Redis-Befehl zur statistischen Analyse verwenden:
OBJECT REFCOUNT Dieser Befehl wird hauptsächlich verwendet Zum Debuggen ( Debuggen) kann es die Häufigkeit zurückgeben, mit der auf den Wert verwiesen wird, der dem angegebenen Schlüssel entspricht. Es kann auch als Datenkomprimierungsmethode verstanden werden.
OBJECT IDLETIME Dieser Befehl gibt die Leerlaufzeit des Werts, der dem angegebenen Schlüssel entspricht, seit seiner Speicherung in Sekunden zurück (keine Anforderung für Lese- oder Schreibvorgänge). Dieser Wert gibt die Zeit in 10 Sekunden zurück. Dies kann in zukünftigen Implementierungen verbessert werden.
Weitere Redis-Kenntnisse finden Sie in der Spalte
Redis-Einführungs-Tutorial.
Das obige ist der detaillierte Inhalt vonRedis-Methode zur Leistungsoptimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!