KerndatenPerformance

Caching

Halten Sie Ihre heißesten Daten im Speicher und beantworten Sie Lesezugriffe in deutlich unter einer Millisekunde, auf einer Engine, die jeden Kern nutzt.

GET/s mit Pipelining, gemessen
36.6M
TTL-Genauigkeit
ns
bestehende Clients funktionieren
RESP2/3
Schritt 1 von 5
Durch den Cache lesen

Ein Treffer kommt direkt aus dem Speicher zurück. Die Datenbank wird nicht berührt.

Beispielsitzungplaying
# Durch den Cache lesen
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

Ein animierter Durchlauf mit echten HotKV-Befehlen und Beispielantworten. Klicken Sie auf einen Schritt, um direkt dorthin zu springen. Befehle und Antworten bleiben auf Englisch, genau so, wie Sie sie in HotKV eingeben und sehen.

Das Problem

Datenbanken sind langsam und teuer für Daten, die tausendfach pro Sekunde gelesen werden. Jeder Seitenaufruf, jeder API-Aufruf und jede Dashboard-Aktualisierung wiederholt dieselbe Abfrage, und die Datenbank wird zum Engpass, lange bevor es Ihre Anwendung wird.

So löst HotKV es

HotKV sitzt vor der Datenbank und hält Ergebnisse im Speicher. Ihre Anwendung liest zuerst aus HotKV und greift nur bei einem Miss auf die Datenbank zurück. Weil HotKV Befehle auf vielen Threads gleichzeitig ausführt, zwängt ein ausgelasteter Cache nicht jeden Client durch einen einzigen Kern, und mit Tags können Sie eine ganze Gruppe von Einträgen invalidieren, wenn sich die zugrunde liegenden Daten ändern.

Schritt für Schritt

Was passiert, Befehl für Befehl

  1. 01

    Durch den Cache lesen

    Ein Treffer kommt direkt aus dem Speicher zurück. Die Datenbank wird nicht berührt.

    GET product:1001
  2. 02

    Miss, also einmal laden und cachen

    Bei einem Miss liest die Anwendung einmal aus der Datenbank und cacht das Ergebnis für fünf Minuten.

    SET product:2002 "{\"name\":\"Oak desk\",\"price\":420}" EX 300
  3. 03

    Einträge nach ihren Abhängigkeiten taggen

    Jede gecachte Seite, die Beleuchtungsprodukte zeigt, trägt denselben Tag.

    TAG.SET product:1001 catalog:lighting
  4. 04

    Die Gruppe invalidieren

    Die Preise haben sich geändert. Listen Sie jeden Key mit dem Tag auf und löschen Sie alle in einer Pipeline.

    TAG.MEMBERS catalog:lighting
  5. 05

    Sehr kurzlebige Einträge

    Ein bereits gesetztes Flash-Token, das nach 250 ms verschwinden muss, mit Nanosekunden-Genauigkeit.

    NEXPIRE flash:token:9 250000000
Wo es passt

Szenarien aus der Praxis

Onlineshops

Produktseiten, Preise und Lagerbestände werden tausendfach pro Sekunde gelesen und per Tag erneuert, wenn sich der Katalog ändert.

APIs und Mobile-Backends

Antworten beliebter Endpunkte werden mit kurzen TTLs gecacht, sodass Lastspitzen den Speicher treffen statt der Datenbank.

Content-Websites

Gerenderte Fragmente und Artikel-Metadaten werden minutenweise gecacht und per Tag invalidiert, wenn ein Redakteur veröffentlicht.

Integriert

Was Sie bekommen

TTLs von Sekunden bis Nanosekunden

EXPIRE und PEXPIRE funktionieren wie gewohnt. NEXPIRE ergänzt Nanosekunden-Genauigkeit.

EXPIREPEXPIRENEXPIRE

Invalidierung per Tag

Versehen Sie Keys mit TAG.SET mit Labels und finden Sie dann jeden Key mit einem Label.

TAG.SETTAG.MEMBERS

Optionale Kompression

Große Payloads lassen sich komprimieren, sodass mehr von Ihrem Working Set in den Speicher passt.

Multithreaded Lesezugriffe

Befehle laufen auf parallelen Threads, sodass der Durchsatz mit den Kernen wächst. Die Zahlen stehen auf der Performance-Seite.

GETMGET

Häufige Fragen

Kann ich meinen bestehenden Redis-Client verwenden?

HotKV spricht das Redis-Protokoll (RESP2 und RESP3), daher verbinden sich Standard-Redis-Clients damit. Prüfen Sie in der Befehlsreferenz die Befehle, auf die Sie angewiesen sind.

Wie invalidiere ich eine Gruppe gecachter Keys?

Taggen Sie die Keys beim Cachen mit TAG.SET, rufen Sie dann TAG.MEMBERS auf und löschen Sie, was zurückkommt.

Woher stammt die Zahl 36.6M?

Es ist der GET-Durchsatz mit Pipelining aus dem veröffentlichten Benchmark von HotKV. Methode und Hardware stehen auf der Performance-Seite.

Verwandte Anwendungsfälle

Probieren Sie es mit Ihrer eigenen Workload

HotKV spricht das Redis-Protokoll, sodass Sie einen bestehenden Client darauf richten und genau diese Befehle ausführen können.