Date de bazăPerformanță

Caching

Păstrați cele mai fierbinți date în memorie și răspundeți la citiri în mult sub o milisecundă, pe un motor care pune la treabă fiecare nucleu.

GET/s cu pipelining, măsurat
36.6M
precizie TTL
ns
clienții existenți funcționează
RESP2/3
Pasul 1 din 5
Citiți prin cache

Un succes se întoarce direct din memorie. Baza de date nu este atinsă.

Sesiune de exempluplaying
# Citiți prin cache
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

O demonstrație animată cu comenzi HotKV reale și răspunsuri de exemplu. Faceți clic pe orice pas pentru a sări la el. Comenzile și răspunsurile rămân în engleză, exact așa cum le tastați și le vedeți în HotKV.

Problema

Bazele de date sunt lente și scumpe de lovit pentru date citite de mii de ori pe secundă. Fiecare vizualizare de pagină, apel API sau reîmprospătare de dashboard repetă aceeași interogare, iar baza de date devine blocajul cu mult înaintea aplicației dvs.

Cum o rezolvă HotKV

HotKV stă în fața bazei de date și ține rezultatele în memorie. Aplicația dvs. citește mai întâi din HotKV și revine la baza de date doar la o ratare. Pentru că HotKV rulează comenzile pe mai multe thread-uri simultan, un cache aglomerat nu îngrămădește fiecare client printr-un singur nucleu, iar etichetele vă permit să invalidați un grup întreg de intrări când datele de bază se schimbă.

Pas cu pas

Ce se întâmplă, comandă cu comandă

  1. 01

    Citiți prin cache

    Un succes se întoarce direct din memorie. Baza de date nu este atinsă.

    GET product:1001
  2. 02

    Ratare, deci încărcați o dată și puneți în cache

    La o ratare, aplicația citește baza de date o dată și pune rezultatul în cache pentru cinci minute.

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

    Etichetați intrările după ce depind

    Fiecare pagină din cache care arată produse de iluminat poartă aceeași etichetă.

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

    Invalidați grupul

    Prețurile s-au schimbat. Listați fiecare cheie cu eticheta și ștergeți-le într-un singur pipeline.

    TAG.MEMBERS catalog:lighting
  5. 05

    Intrări foarte efemere

    Un token flash, deja setat, care trebuie să dispară după 250 ms, cu precizie de nanosecundă.

    NEXPIRE flash:token:9 250000000
Unde se potrivește

Scenarii din lumea reală

Magazine online

Paginile de produs, prețurile și nivelurile de stoc sunt citite de mii de ori pe secundă și reîmprospătate după etichetă când se schimbă catalogul.

API-uri și backenduri mobile

Răspunsurile pentru endpointurile populare sunt puse în cache cu TTL scurte, deci vârfurile de trafic lovesc memoria, nu baza de date.

Site-uri de conținut

Fragmentele randate și metadatele articolelor sunt păstrate în cache minute în șir și invalidate după etichetă când un editor publică.

Integrat

Ce primiți

TTL de la secunde la nanosecunde

EXPIRE și PEXPIRE funcționează cum vă așteptați. NEXPIRE adaugă precizie de nanosecundă.

EXPIREPEXPIRENEXPIRE

Invalidare după etichetă

Marcați cheile cu TAG.SET, apoi găsiți fiecare cheie cu o etichetă.

TAG.SETTAG.MEMBERS

Comprimare opțională

Sarcinile mari pot fi comprimate, ca mai mult din setul dvs. de lucru să încapă în memorie.

Citiri multi-thread

Comenzile se execută pe thread-uri paralele, deci debitul crește odată cu nucleele. Cifrele sunt pe pagina Performanță.

GETMGET

Întrebări frecvente

Pot folosi clientul meu Redis existent?

HotKV vorbește protocolul Redis (RESP2 și RESP3), deci clienții Redis standard se conectează la el. Verificați referința de comenzi pentru comenzile pe care vă bazați.

Cum invalidez un grup de chei din cache?

Etichetați cheile cu TAG.SET când le puneți în cache, apoi apelați TAG.MEMBERS și ștergeți ce se întoarce.

De unde vine cifra de 36.6M?

Este debitul GET cu pipelining din benchmark-ul publicat al HotKV. Metoda și hardware-ul sunt pe pagina Performanță.

Cazuri de utilizare înrudite

Încercați pe propria sarcină de lucru

HotKV vorbește protocolul Redis, așa că puteți îndrepta spre el un client existent și rula aceleași comenzi.