KärndataPrestanda

Cache

Håll dina hetaste data i minnet och besvara läsningar på långt under en millisekund, i en motor som sätter varje kärna i arbete.

GET/s med pipelining, uppmätt
36.6M
TTL-precision
ns
befintliga klienter fungerar
RESP2/3
Steg 1 av 5
Läs via cachen

En träff kommer direkt tillbaka från minnet. Databasen berörs inte.

Exempelsessionplaying
# Läs via cachen
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

En animerad genomgång med riktiga HotKV-kommandon och exempelsvar. Klicka på valfritt steg för att hoppa dit. Kommandon och svar förblir på engelska, precis som du skriver och ser dem i HotKV.

Problemet

Databaser är långsamma och dyra att anropa för data som läses tusentals gånger i sekunden. Varje sidvisning, API-anrop eller uppdatering av en instrumentpanel upprepar samma fråga, och databasen blir flaskhalsen långt före din applikation.

Så löser HotKV det

HotKV sitter framför databasen och håller resultat i minnet. Din applikation läser först från HotKV och faller bara tillbaka på databasen vid en miss. Eftersom HotKV kör kommandon på många trådar samtidigt behöver en hårt belastad cache inte leda varje klient genom en enda kärna, och med taggar kan du invalidera en hel grupp poster när den underliggande datan ändras.

Steg för steg

Vad som händer, kommando för kommando

  1. 01

    Läs via cachen

    En träff kommer direkt tillbaka från minnet. Databasen berörs inte.

    GET product:1001
  2. 02

    Miss, så läs in en gång och cacha

    Vid en miss läser applikationen databasen en gång och cachar resultatet i fem minuter.

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

    Tagga poster efter vad de beror på

    Varje cachad sida som visar belysningsprodukter bär samma tagg.

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

    Invalidera gruppen

    Priserna ändrades. Lista varje nyckel med taggen och radera dem i en enda pipeline.

    TAG.MEMBERS catalog:lighting
  5. 05

    Mycket kortlivade poster

    En blixttoken, redan satt, som måste försvinna efter 250 ms, med nanosekundsprecision.

    NEXPIRE flash:token:9 250000000
Där det passar

Verkliga scenarier

Webbutiker

Produktsidor, priser och lagersaldon läses tusentals gånger i sekunden och uppdateras via tagg när katalogen ändras.

API:er och mobila backend

Svar för populära slutpunkter cachas med korta TTL, så att trafiktoppar träffar minnet i stället för databasen.

Innehållssajter

Renderade fragment och artikelmetadata cachas i minuter och invalideras via tagg när en redaktör publicerar.

Inbyggt

Det här får du

TTL från sekunder till nanosekunder

EXPIRE och PEXPIRE fungerar som du förväntar dig. NEXPIRE ger nanosekundsprecision.

EXPIREPEXPIRENEXPIRE

Invalidera via tagg

Märk nycklar med TAG.SET och hitta sedan varje nyckel med en etikett.

TAG.SETTAG.MEMBERS

Valfri komprimering

Stora nyttolaster kan komprimeras så att mer av din arbetsmängd ryms i minnet.

Flertrådade läsningar

Kommandon körs på parallella trådar, så genomströmningen växer med antalet kärnor. Siffrorna finns på sidan Prestanda.

GETMGET

Vanliga frågor

Kan jag använda min befintliga Redis-klient?

HotKV talar Redis-protokollet (RESP2 och RESP3), så vanliga Redis-klienter ansluter till det. Kontrollera kommandoreferensen för de kommandon du förlitar dig på.

Hur invaliderar jag en grupp cachade nycklar?

Tagga nycklarna med TAG.SET när du cachar dem, anropa sedan TAG.MEMBERS och radera det som kommer tillbaka.

Var kommer siffran 36.6M ifrån?

Det är genomströmningen för GET med pipelining i HotKV:s publicerade benchmark. Metod och hårdvara finns på sidan Prestanda.

Relaterade användningsfall

Prova på din egen arbetslast

HotKV talar Redis-protokollet, så du kan peka en befintlig klient mot det och köra samma kommandon.