13 Punkte von lemonmint 2024-11-29 | 1 Kommentare | Auf WhatsApp teilen

Redis ist schnell, aber häufige Datenabfragen belasten den API-Server. Besonders bei Echtzeitdaten, deren Aktualisierungen unregelmäßig sind, die aber oft abgefragt werden müssen, ist eine effiziente Caching-Strategie erforderlich.

  • Problem: Redis PubSub oder Keyspace Notifications können die Logik zur Erkennung von Aktualisierungen und zur Verarbeitung von Nachrichten komplex machen oder Ressourcen verschwenden.

  • Lösung: Invalidation Messages, unterstützt seit Redis 6.0, sind ein Verfahren, bei dem der Server den Client-Cache verwaltet.

    • Wenn ein Client einen Schlüssel gelesen hat und ein anderer Client ihn ändert, sendet Redis eine Aktualisierungsnachricht, damit der Cache gelöscht wird.
  • Implementierung: In Go kann man Invalidation Messages mit der Kombination aus redigo+ristretto oder mit der Bibliothek rueidis einsetzen.

    • redigo+ristretto erfordert Custom-Logik, während sich dies mit rueidis über die Funktion DoCache einfach umsetzen lässt.
  • Ergebnis: In der Praxis verbesserte sich die Antwortgeschwindigkeit der API um bis zu 82 %, und auch die Last auf dem Redis-Server sank. Die Verwaltung des clientseitigen Caches ist zwar notwendig, der Performance-Gewinn ist jedoch groß.

1 Kommentare

 
jujumilk3 2024-11-29

👀