Heim >Datenbank >Redis >Was ist Redis-Lawine?

Was ist Redis-Lawine?

hzc
hzcOriginal
2020-06-28 15:37:286312Durchsuche

Die englische Erklärung für die Redis-Cache-Lawine ist „Running Bison“, was bedeutet, dass der gleichzeitige Datenverkehr nach dem Absturz der Cache-Ebene wie ein galoppierender Bison ist und eine große Menge an Back-End-Speicher aufweist Aus bestimmten Gründen und aufgrund des Gesamtausfalls bei der Bereitstellung von Diensten erreichen alle Anforderungen die Speicherschicht, und die Anzahl der Aufrufe an die Speicherschicht nimmt dramatisch zu, was dazu führt, dass die Speicherschicht aufhängt.

Was ist Redis-Lawine?

1. Was ist Lawine

Da die Cache-Schicht eine große Anzahl von Anforderungen trägt, schützt sie effektiv die Speicherschicht. aber wenn Aus bestimmten Gründen kann der Cache keine Dienste als Ganzes bereitstellen, sodass alle Anforderungen die Speicherschicht erreichen und die Anzahl der Aufrufe an die Speicherschicht dramatisch ansteigt, was dazu führt, dass die Speicherschicht aufhängt. Die englische Erklärung für die Cache-Lawine lautet „Bison ausführen“, was bedeutet, dass der gleichzeitige Datenverkehr nach dem Absturz der Cache-Schicht einem galoppierenden Bison mit einer großen Menge an Back-End-Speicher ähnelt.

Ein Szenario, in dem dieses Problem auftritt, ist: Wenn der Cache-Server neu gestartet wird oder eine große Anzahl von Caches in einem bestimmten Zeitraum ausfällt, sodass bei einem Ausfall eine große Datenmenge direkt auf die Datenbank zugreift, was ein großes Problem für den DB-Druck darstellen wird.

Was ist Redis-Lawine?

2. Lösung

(1) Richten Sie die Hochverfügbarkeit von Redis-Cluster und DB-Cluster ein. Wenn Redis ausfällt, kann es sofort ersetzt werden ein anderer Die Maschine übernimmt. Dadurch können einige Risiken vermieden werden.

(2) Verwenden Sie Mutex-Sperren

Steuern Sie nach Ablauf des Caches die Anzahl der Threads, die die Datenbank lesen und schreiben, indem Sie sie sperren oder in die Warteschlange stellen. Beispiel: Nur ein Thread darf Daten abfragen und den Cache für einen bestimmten Schlüssel schreiben, während andere Threads warten. Wenn es sich um eine eigenständige Maschine handelt, können Sie das Problem mit „synchoned“ oder „lock“ lösen. Wenn es sich um eine verteilte Umgebung handelt, können Sie das Problem mit dem Befehl „redis setnx“ lösen.

(3) Verschiedene Schlüssel können auf unterschiedliche Ablaufzeiten eingestellt werden, um die Zeitpunkte der Cache-Ungültigmachung inkonsistent zu machen und eine gleichmäßige Verteilung zu erreichen.

(4) Läuft nie ab

Redis ist so eingestellt, dass es nie abläuft. Dadurch wird sichergestellt, dass es keine Hotspot-Probleme gibt, das heißt, es läuft nicht physisch ab.

(5) Ressourcenschutz

Mit der Hystrix von Netflix können Sie den Thread-Pool verschiedener Ressourcen isolieren, um den Haupt-Thread-Pool zu schützen.

Empfohlenes Tutorial: „Redis-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist Redis-Lawine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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