Redis Client Side Caching

Redis Client Side Caching
Moderne Webanwendungen arbeiten mit massiven Datenmengen, die in Back-End-Datenbanken gespeichert sind. Diejenigen Webanwendungen, die mit Daten funktionieren, sollten sorgfältig für die Leistung optimiert werden. Jede Anfrage, die über ein Netzwerk zu einer Datenbank gestellt wurde. Andererseits wirkt sich dies direkt auf die Leistung einer Webanwendung aus.

Das Client-Side-Caching ermöglicht das Speichern häufig zugänglicher Daten am Ende des Browsers oder im Speicher des Anwendungsservers. Es verbraucht in gewissem Maße die kundenseitige Speicherung, aber der Leistungssteiger ist hoch. Wenn die Daten erforderlich sind. Meistens rufen Web -Clients denselben Datensatz immer wieder aus der Datenbank ab. Wenn das clientseitige Caching aktiviert ist, werden Daten, die über beliebte Abfragen abgerufen wurden.

Das Kunden-Seiten-Caching hat zwei Hauptvorteile:

  • Verbessert die Leistung um beträchtliche Menge.
  • Reduziert die Datenbank- und Netzwerklast.

Gleichzeitig steht das clientseitige Caching vor der Herausforderung, aktuelle Daten zu erhalten. Wenn die Daten in der Datenbankende geändert werden, wird dieses Datenstück im Client -Cache veraltet und der Client sollte sofort benachrichtigt werden, um das aktualisierte Stück abzurufen. Redis hat sein Caching -Modell implementiert, indem er diese Probleme behandelt hat.

Richten Sie das Client-Side-Caching mit Redis ein

In Redis wird das clientseitige Caching benannt Verfolgung. Es gibt zwei Verfolgungsmodi, die von Redis unterstützt werden. Der Standardmodus wird als serverunterstützte Tracking bezeichnet, wobei der Server Ungültigheitsmeldungen sendet, die nur mit den Schlüssel, die im Client-Cache enthalten sind. Andererseits bietet der Rundfunkmodus den Kunden die Freiheit, bevorzugte Schlüsselpräfixe zu abonnieren und Benachrichtigungen zu erhalten, wenn ein Schlüssel mit dem abonnierten Präfix geändert wird.

Serverunterstützte Tracking für Redis-Clients

Wie der Name schon sagt, verfolgt der Server im serverunterstützten Modus die Schlüssel, auf die ein bestimmter Client zugegriffen wird. Wenn in der Datenbank ein verfolgter Schlüssel geändert wird, wird der Client sofort benachrichtigt. Am wichtigsten ist, dass die Invalidierungsbenachrichtigungen nur für die Schlüssel in einem bestimmten Client -Cache generiert werden. Der einzige Nachteil in diesem Modus ist, dass er den Serverspeicher ausnutzt, um die zugegriffenen Schlüssel durch jeden Client zu merken.

Engagierter Client für Ungültigmachungsbenachrichtigungen

Normalerweise wird das serverunterstützte clientseitige Caching mit einem dedizierten Client implementiert, der Ungültigmachungsbenachrichtigungen erhält. Dieser Client ist der zentrale Punkt, an dem alle Ungültigheitsmeldungen für alle Clients empfangen werden, die mit einer bestimmten Datenbank verbunden sind.

Lassen Sie uns einen dedizierten Client einrichten, um Ungültigmachungsnachrichten zu erhalten. Zunächst müssen wir als autorisierte Client eine Verbindung zu unserem REDIS -Server herstellen und die ID des Clients wie folgt erhalten.

Kunden ID

Der obige Befehl gibt die ID der aktuellen Clientverbindung zurück, die 3 ist. Diese ID wird in den nächsten Schritten benötigt, um sie als zentraler Client zu identifizieren, um die Ungültigmachungsnachrichten zu empfangen. Als nächstes abonnieren wir den Invalidation -Benachrichtigungskanal wie folgt. Der Befehl abonnieren kann verwendet werden.

Kanal abonnieren [Kanal…]

In diesem Beispiel ist der Kanal __Redis __: ungültig.

abonnieren __redis __: ungültig erklärt

Jetzt haben wir die Client -Verbindung eingerichtet, um die Invalidierungsbenachrichtigungen zu erhalten. Lassen Sie uns eine andere Clientverbindung einleiten und die Client -Tracking einschalten. Darüber hinaus leiten wir alle mit dem neuen Client zugefügten Ungültigheitsmeldungen zum zentralen Client um, das im früheren Schritt erstellt wurde. Wir können den Befehl client Tracking verwenden, um dies zu erreichen. Das Folgende ist die Syntax des Client -Tracking -Befehls.

Kundenverfolgung [Client-ID umleiten] [Präfix Präfix [Präfix Präfix…]] [Bcast] [Optin] [OPTOUT] [Noloop]

Auf | AUS : Stellen Sie fest, ob die Client -Tracking aktiviert sein sollte oder nicht.

Umleiten: Geben Sie die ID des Clients an, der Ungültigmachungsnachrichten empfängt.

Lassen Sie uns die Client -Tracking für einen neuen autorisierten Client aktivieren und verwenden die Option "Weiterleitungen", um die Verbindung anzugeben, die die Ungültigkeit erhält, Nachrichten, die 3 sind.

Client -Tracking bei Redirect 3

Jetzt sind wir bereit, unsere Redis -Client -Tracking zu testen. Zuerst setzen wir ein Schlüsselwertpaar wie folgt.

Setzen Sie den Benutzernamen "user_01"

Als Nächst.

Benutzernamen bekommen

Öffnen wir einen neuen Kunden und ändern den im Schlüssel gespeicherten Wert Nutzername folgendermaßen.

Setzen Sie den Benutzernamen "user_2"

Sofort wird der Kunde, der sich für den Egualdidat -Kanal abonniert hat Nutzername wurde geändert und ist bereits ungültig.

Dieses Modell basiert auf dem ESP2 -Protokoll, bei dem die Standardprotokoll -Redis -Clients verwendet werden.

EP3 -Protokoll, um Benachrichtigungen über den Tracking -Client zu erhalten

Aus Version 6.0, Redis führt das EMP3 -Protokoll ein, mit dem ein aktiver Client Ungültigmachungsnachrichten empfangen kann. Dies ist ein großer Vorteil, bei dem ein Redis -Kunde einen bestimmten Kanal anhören kann.

Lassen Sie uns zuerst die Redis -Version überprüfen. Es muss Version 6 sein.0 oder das neueste, um das EMP3 -Protokoll zu verwenden. Der folgende Befehl kann ausgestellt werden, um die Redis -Version zu überprüfen.

Redis-Cli-Verssion

Da ist es Version 7.0, wir sind alle gut, um das EMP3 -Protokoll zu verwenden. REDIS -Clients verwenden standardmäßig EP2. Wir müssen also zum EP3 -Protokoll wechseln.

Hallo 3

Dies würde das Protokoll mit der folgenden Ausgabe in ReP3 ändern.

Lassen Sie uns die Client -Tracking wie im früheren Beispiel mit dem Befehl client Tracking ermöglichen. In diesem Fall müssen wir die Option Weiterleitungsoption nicht angeben.

Kundenverfolgung auf

Jetzt werden die Schlüssel, die dieser Client abbricht, vom Server verfolgt. Wenn sich der Wert einer verfolgten Schlüsselzahl ändert, wird außerdem eine Invalidierungsnachricht an die Clients gesendet.

Lassen Sie uns den Schlüssel holen Nutzername.

Benutzernamen bekommen

Der Kunde schneidet die vor Nutzername Schlüssel und sein zugehöriger Wert. Jetzt initiieren wir eine andere Clientverbindung und ändern den im Schlüssel gespeicherten Wert Nutzername.

Wenn Sie die vorherige Client -Verbindung überprüfen, wird noch keine Ungültigmachungsnachricht empfangen. Wenn Sie einen anderen Befehl ausgeben, wird die Invalidierungsbenachrichtigung sofort wie folgt angezeigt.

2. Broadcast -Modus für Client -Tracking

Im Standardmodus erhalten Clients nur für die Schlüssel, die sie in früheren Befehlsanrufen abgerufen haben. Wenn der Broadcast -Modus aktiviert ist, abonnieren die Clients ein bestimmtes Schlüsselpräfix und der Client erhält die Benachrichtigungen zur Ungültigkeit von Ungültigmachungen für jeden Schlüssel, der geändert wird, dessen Schlüssel mit dem abonnierten Präfix beginnt.

Verwenden wir eine neue Client -Verbindung, um die Ungültigheitsmeldungen zu erhalten.

In diesem Beispiel ist die Client -Verbindungs ​​-ID 10, die mit der Ausleitungsoption für einen neuen Client verwendet wird. Geben wir die BCast -Option im Befehl client wie folgt an.

Client -Tracking am BCAST -Präfix -Benutzer: Weiterleiten Sie 10 um

Angenommen, wir haben einen Schlüssel namens User: ID: 1 in der Redis -Instanz. Lassen Sie es uns von diesem Kunden erhalten.

Jetzt wird der Benutzer: ID: 1 Schlüssel auf der Clientseite zwischengespeichert.

Erstellen wir eine neue Client -Verbindung und setzen Sie einen neuen Schlüssel wie folgt fest: Benutzer: ID: 3.

In diesem Moment erhält der Client, der die Verfolgung verfolgt hat. Dies geschieht, weil der neue Schlüssel das Präfix enthält Benutzer: Dies ist das abonnierte Präfix des Tracking -fähigen Clients. Wie Sie sehen können, verfolgt der Server keine der Schlüssel, die jeder Client abruft.

Optionen Optin und Optout

Mit den Optionen Optin und Optout -Optionen von Optin und Optout können Sie herausfiltern, welche Schlüssel der Server genau verfolgen oder nicht verfolgen sollte. Mit diesen Optionen, die im Befehl client Tracking aktiviert sind, verfolgen Redis nur die Tasten, bei denen es sich um Abfragen handelt. Dies minimiert die serverseitige Speicherverwendung und lädt drastisch lädt.

Abschluss

Zusammenfassend ist das clientseitige Caching eine der weit verbreiteten Techniken zur Verbesserung der Leistung von Webanwendungen, die Daten häufig aus Back-End-Datenbanken anfordern. Wie erläutert, kann der Browser- oder clientseitige Anwendungsserver die Daten in Bezug auf beliebte vom Client herausgegebene Abfragen halten. Wie in der Einführung erwähnt, wird das clientseitige Caching in Redis als Tracking bezeichnet. Darüber hinaus sind die beiden Tracking -Modi in Redis erhältlich. Sowohl die dedizierten Kunden- als auch die Broadcast -Modi haben ihre eigenen Anwendungsfälle.