Entsprechend der Granularität von grob bis fein:
Nehmen Sie die Produktdetailseite als Beispiel
1. Caching auf Seitenebene
(Manchmal auch URL-Level-Cache genannt, die Seite wird manuell gerendert und in Redis gespeichert (Schlüssel=Produkt-ID, val="Produktdetailseite). Wenn diese Seite in Zukunft erneut angefordert wird, wird sie von Redis abgerufen und gibt Text/HTML direkt an das Frontend zurück, und Sie können den Browser anweisen, die Seite lokal zwischenzuspeichern. Der Nachteil besteht darin, dass die Seitendaten nicht rechtzeitig aktualisiert werden)
2. Zwischenspeicherung auf Objektebene
(z. B. Produktdaten, (Schlüssel = Produkt-ID, val = „Datenbank „Produktdaten suchen“) speichert die einmal abgefragten Produktinformationen in Redis. Wenn Sie zum zweiten Mal eine Änderung der Produktdaten anfordern, wird die Abfrage durchgeführt
Die Idee des Redis-Cachings ist:
1. Überprüfen Sie zunächst, ob Daten in Redis vorhanden sind.
1.1. Rückkehr
1.2. Wenn nicht, fragen Sie die Datenbank ab, speichern Sie sie in Redis und geben Sie dann zurück
2. Achten Sie auf den Caching-Lebenszyklus,
Wenn der Zyklus dauerhaft ist , dann wird Redis leicht zusammenbrechen, es ist nur eine Frage der Zeit
Verwendung von Redis im Flash-Sale:
1. Beenden Sie zuerst den Flash. Der Produktbestand ist in Redis vorgespeichert
2. Nach Beginn des Flash-Sales wird der Bestand in Redis vorab verringert und auf 0 reduziert. Der Produkt-Flash-Sale endet (Redis ist Single-Threaded)
3. Wenn, um das Problem zu lindern Um den Redis-Zugriffsdruck zu erhöhen, können von Benutzern eingereichte Flash-Sale-Anfragen in mq (z. B. RabbitMq) platziert werden.
Zum Beispiel gibt es insgesamt nur 10 Produkte und insgesamt 100.000 Benutzer beobachten sie und reichen alle ein Flash-Verkaufsanfragen fast gleichzeitig,
3.1 Sie können die Anfrage in die Nachrichtenwarteschlange stellen und sie als „Warteschlange“ an das Frontend zurückgeben;
3.2. der „Verbraucher“ der Warteschlange) liest mit einer festen Geschwindigkeit aus der Nachrichtenwarteschlange. Holen Sie sich die Daten und erstellen Sie Aufträge in der Datenbank (d. h. erstellen Sie 10 Aufträge auf geordnete Weise, ohne Auswirkungen auf die Datenbank),
3.3. Auch wenn die Erstellung der Bestellung aus irgendeinem Grund fehlschlägt, wird die Flash-Sale-Anfrage des Benutzers am Ende von mq platziert und dann werden Bestellungen für andere Benutzer in der Warteschlange erstellt
3.4. Wenn die Bestellung erfolgreich erstellt wurde, wird die Anfrage aus mq entfernt und eine SMS an den Benutzer gesendet. „Herzlichen Glückwunsch, der Flash-Sale ist erfolgreich!“
3.5 . Nachdem Sie 10 Bestellungen erfolgreich erstellt haben (d. h. der Flash-Verkauf endet), fordern Sie andere Benutzer in der Warteschlange auf, „Der Flash-Verkauf ist fehlgeschlagen“ zurückzugeben.
Für weitere Redis-Kenntnisse beachten Sie bitte die Redis-Einführung Tutorial Spalte .
Das obige ist der detaillierte Inhalt vonEinführung in den mehrstufigen Redis-Cache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!