Inhaltsverzeichnis
Cache-Lawine
Lösung
Cache-Penetration
Cache-Aufschlüsselung
Cache-Konsistenz
Heim Datenbank Redis Lassen Sie uns über Cache-Penetration, Cache-Lawine, Cache-Aufschlüsselung und Cache-Konsistenz in Redis sprechen

Lassen Sie uns über Cache-Penetration, Cache-Lawine, Cache-Aufschlüsselung und Cache-Konsistenz in Redis sprechen

Nov 24, 2021 pm 07:42 PM
redis 缓存一致性 缓存穿透 缓存雪崩

Dieser Artikel gibt Ihnen einen kurzen Überblick über Cache-Penetration, Cache-Lawine, Cache-Aufschlüsselung und Cache-Konsistenz in Redis und stellt die Lösungen für Cache-Penetration und Cache-Lawine vor. Ich hoffe, dass er für alle hilfreich ist!

Lassen Sie uns über Cache-Penetration, Cache-Lawine, Cache-Aufschlüsselung und Cache-Konsistenz in Redis sprechen

Cache-Lawine

Der Cache fällt gleichzeitig in einem großen Bereich aus, und nachfolgende Anforderungen fallen auf die Datenbank, was dazu führt, dass die Datenbank einer großen Anzahl von Anforderungen in kurzer Zeit nicht standhalten kann Einbruch

Auf der E-Commerce-Homepage beträgt beispielsweise die Schlüsselablaufzeit aller Homepages alle 12 Stunden und wird um 12 Uhr mittags aktualisiert, wenn um 0:00 Uhr ein Flash-Sale-Event stattfindet und eine große Anzahl von Benutzern hereinströmt , aber alle Schlüssel im Cache sind zu diesem Zeitpunkt ungültig. Wenn die Datenbank dies nicht verarbeiten kann, wird sie direkt blockiert. Wenn Redis ausfällt, wird eine große Anzahl von Anforderungen an MySQL gesendet. wodurch es aufhängt. [Verwandte Empfehlungen: Redis-Video-Tutorial]

Lösung

  • In diesem Fall sollten Sie der Ablaufzeit jedes Schlüssels einen zufälligen Wert hinzufügen, um eine große Anzahl von Schlüsselfehlern gleichzeitig zu vermeiden ist eine Redis-Cluster-Bereitstellung. Hotspot-Daten können an verschiedene Bibliotheken verteilt werden.

  • Vorher: Versuchen Sie, die hohe Verfügbarkeit des Redis-Clusters sicherzustellen, Maschinenausfallzeiten so schnell wie möglich auszugleichen und eine geeignete Strategie zur Speicherbeseitigung zu wählen

  • In Bearbeitung: lokaler Ehcache-Cache + Hystrix-Strombegrenzung und Downgrade Um einen MySQL-Absturz zu vermeiden

  • Danach: Die vom Redis-Persistenzmechanismus gespeicherten Daten werden so schnell wie möglich im Cache wiederhergestellt.

Cache-Penetration

Eine große Anzahl angeforderter Schlüssel ist nicht im Cache vorhanden. Beispielsweise erstellt ein Hacker einen Schlüssel, der nicht im Cache vorhanden ist, und initiiert eine große Anzahl von Anfragen, was zu einer großen Anzahl von Anfragen führt in die Datenbank fallen.

Lösung

  • Zunächst sollten Sie eine grundlegende Überprüfung der Eingabeparameter durchführen und illegale Parameter direkt abfangen. Fragen Sie beispielsweise ab, ob die Datenbank-ID nicht kleiner als 0 sein darf, überprüfen Sie das E-Mail-Format usw.

  • Wenn beides Der Cache und die Datenbank sind Wenn die Daten eines bestimmten Schlüssels nicht gefunden werden können, wird der Schlüssel in Redis geschrieben, der Wert ist null und die Ablaufzeit wird festgelegt, um zu verhindern, dass die nächste Anforderung auf die Datenbank fällt.

  • Durch den Bloom-Filter kann der Bloom-Filter sehr bequem feststellen, ob bestimmte Daten in massiven Daten vorhanden sind. Alle möglichen angeforderten Werte können im Bloom-Filter gespeichert werden, und wenn die Anfrage eintrifft, wird zunächst festgestellt, ob die Anfrage gesendet wurde vom Benutzer im Bloom-Filter vorhanden ist, und ihn direkt abfangen, wenn er nicht vorhanden ist.

Cache-Aufschlüsselung

Cache-Aufschlüsselung bezieht sich auf einen Schlüssel-Hotspot, der ständig große Parallelität aufweist. Wenn der Schlüssel fehlschlägt, durchbricht die kontinuierliche große Parallelität den Cache und fordert ihn direkt an Datenbank

Cache-Konsistenz

Wenn eine starke Konsistenz erforderlich ist, kann der Cache nicht verwendet werden, da keine starke Konsistenz garantiert werden kann, sondern nur eine eventuelle Konsistenz.

  • Löschen Sie zuerst den Cache und aktualisieren Sie dann die Datenbank.

Wenn die Datenbankaktualisierung fehlschlägt, sind in der Datenbank noch alte Daten vorhanden, Redis ist leer und die Daten sind nicht inkonsistent. Wenn sie leer sind, werden sie gelöscht Zur Abfrage in die Datenbank übertragen und dann im Cache aktualisieren.

  • Treten Sie der Warteschlange bei und führen Sie Serialisierungsvorgänge aus.

Löschen Sie zuerst den Cache und aktualisieren Sie dann die Datenbank. In Szenarien mit hoher Parallelität können auch Probleme auftreten, z. B. wenn der Cache gelöscht wird und die Datenbank zu diesem Zeitpunkt nicht aktualisiert wird in und findet Wenn Redis leer ist, wird die Datenbank gelesen und dann auf Redis aktualisiert. Wenn zu diesem Zeitpunkt der zwischengespeicherte Thread gelöscht und dann die Datenbank aktualisiert wird, sind die Datenbank- und Redis-Daten zu diesem Zeitpunkt inkonsistent. Der Datenaktualisierungsvorgang kann in die Warteschlange gestellt und serialisiert werden. Der Vorgang wird nicht ausgeführt, wird jedoch im Allgemeinen nicht empfohlen, da er die Effizienz verringert.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Einführung in die Programmierung! !

Das obige ist der detaillierte Inhalt vonLassen Sie uns über Cache-Penetration, Cache-Lawine, Cache-Aufschlüsselung und Cache-Konsistenz in Redis sprechen. 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ß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 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.

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 lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

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 lesen Sie den Quellcode von Redis So lesen Sie den Quellcode von Redis Apr 10, 2025 pm 08:27 PM

Der beste Weg, um Redis -Quellcode zu verstehen, besteht darin, Schritt für Schritt zu gehen: Machen Sie sich mit den Grundlagen von Redis vertraut. Wählen Sie ein bestimmtes Modul oder eine bestimmte Funktion als Ausgangspunkt. Beginnen Sie mit dem Einstiegspunkt des Moduls oder der Funktion und sehen Sie sich die Codezeile nach Zeile an. Zeigen Sie den Code über die Funktionsaufrufkette an. Kennen Sie die von Redis verwendeten Datenstrukturen. Identifizieren Sie den von Redis verwendeten Algorithmus.

So erstellen Sie Message Middleware für Redis So erstellen Sie Message Middleware für Redis Apr 10, 2025 pm 07:51 PM

Redis unterstützt als Messing Middleware Modelle für Produktionsverbrauch, kann Nachrichten bestehen und eine zuverlässige Lieferung sicherstellen. Die Verwendung von Redis als Message Middleware ermöglicht eine geringe Latenz, zuverlässige und skalierbare Nachrichten.

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.

See all articles