Heim  >  Artikel  >  Datenbank  >  So lösen Sie Redis-Lawine und -Penetration

So lösen Sie Redis-Lawine und -Penetration

(*-*)浩
(*-*)浩Original
2019-11-27 10:45:354754Durchsuche

So lösen Sie Redis-Lawine und -Penetration

Cache-Penetration

Cache-Penetration bezieht sich auf die Abfrage von Daten, die definitiv nicht vorhanden sind. Da der Cache fehlschlägt, können nachfolgende Abfragen an die Datenbank nicht durchgeführt werden Die Abfrageergebnisse werden nicht in den Cache geschrieben, was dazu führt, dass jede Abfrage die Datenbank anfordert, was zu einer Cache-Penetration führt (Empfohlenes Lernen: Redis-Video-Tutorial)

So lösen Sie Redis-Lawine und -Penetration

Lösung

Bloom-Filterung

Speichert alle möglichen Abfrageparameter in Hash-Form, die Verifizierung wird zuerst auf der Kontrollebene durchgeführt und Wird verworfen, wenn es nicht übereinstimmt, wodurch der Abfragedruck auf das zugrunde liegende Speichersystem vermieden wird.

Leerobjekte werden beim Speichern zwischengespeichert. Nachdem die Ebene fehlschlägt, wird sogar das Das zurückgegebene leere Objekt wird zwischengespeichert und eine Ablaufzeit festgelegt. Der Zugriff auf die Daten erfolgt später aus dem Cache, wodurch die Back-End-Datenquelle geschützt wird Methode:

Wenn Nullwerte zwischengespeichert werden können, bedeutet dies, dass der Cache mehr Platz zum Speichern weiterer Schlüssel benötigt, da möglicherweise viele Schlüssel mit Nullwerten vorhanden sind > Selbst wenn die Ablaufzeit auf Nullwerte eingestellt ist, besteht für einen bestimmten Zeitraum immer noch eine Inkonsistenz zwischen den Daten in der Cache-Schicht und der Speicherschicht, was für Unternehmen, die die Konsistenz aufrechterhalten müssen, problematisch ist.

Cache-Lawine

Cache-Lawine bedeutet, dass die Speicherschicht wirksam geschützt ist, da die Cache-Schicht eine große Anzahl von Anforderungen trägt, die Cache-Schicht jedoch als Ganzes kann aus bestimmten Gründen nicht verwendet werden Um Dienste bereitzustellen, erreichen alle Anforderungen die Speicherschicht, und die Anzahl der Aufrufe an die Speicherschicht nimmt dramatisch zu, was dazu führt, dass auch die Speicherschicht aufhängt.

Lösung

Gewährleistung einer hohen Verfügbarkeit von Cache-Layer-Diensten

So lösen Sie Redis-Lawine und -Penetration

Auch für Einzelpersonen Knoten, einzelne Maschinen oder sogar der Computerraum sind ausgefallen, Dienste können weiterhin bereitgestellt werden. Redis Sentinel und Redis Cluster haben beispielsweise eine hohe Verfügbarkeit erreicht.

Verlassen Sie sich auf die Isolationskomponente, um den Backend-Fluss zu begrenzen und herabzustufen

Nach Ablauf des Caches steuern Sie die Anzahl der Threads, die die Datenbank lesen und den Cache schreiben, durch Sperren oder Schlange stehen. Beispielsweise darf nur ein Thread Daten abfragen und Cache für einen bestimmten Schlüssel schreiben, während andere Threads warten.

Datenvorwärmung

Sie können den Cache-Neulademechanismus verwenden, um den Cache im Voraus zu aktualisieren, und dann vor einem großen gleichzeitigen Zugriff manuell das Laden verschiedener Schlüssel im Cache auslösen auftritt, und legen Sie unterschiedliche Ablaufzeiten fest, damit die Cache-Ungültigmachungszeit möglichst gleichmäßig ist.

Weitere technische Artikel zum Thema Redis finden Sie in der Spalte

Redis Getting Started Tutorial

.

Das obige ist der detaillierte Inhalt vonSo lösen Sie Redis-Lawine und -Penetration. 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