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)
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:
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-DienstenAuch 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 SpalteRedis 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!