Data intiPerforma

Caching

Simpan data terpanas Anda di memori dan jawab pembacaan jauh di bawah satu milidetik, pada mesin yang mengerahkan setiap core.

GET/detik dengan pipeline, terukur
36.6M
presisi TTL
ns
klien yang sudah ada tetap bekerja
RESP2/3
Langkah 1 dari 5
Baca melalui cache

Sebuah hit langsung kembali dari memori. Database tidak disentuh.

Sesi contohplaying
# Baca melalui cache
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

Panduan beranimasi dengan perintah HotKV yang sebenarnya dan balasan contoh. Klik langkah mana pun untuk melompat ke sana. Perintah dan balasan tetap dalam bahasa Inggris, persis seperti yang Anda ketik dan lihat di HotKV.

Masalahnya

Database lambat dan mahal untuk diakses oleh data yang dibaca ribuan kali per detik. Setiap tampilan halaman, panggilan API, atau penyegaran dasbor mengulang kueri yang sama, dan database menjadi hambatan jauh sebelum aplikasi Anda.

Cara HotKV menanganinya

HotKV berada di depan database dan menyimpan hasil di memori. Aplikasi Anda membaca dari HotKV lebih dulu dan hanya kembali ke database saat miss. Karena HotKV menjalankan perintah pada banyak thread sekaligus, cache yang sibuk tidak menyalurkan setiap klien melalui satu core, dan tag memungkinkan Anda meng-invalidasi sekelompok entri saat data yang mendasarinya berubah.

Langkah demi langkah

Apa yang terjadi, perintah demi perintah

  1. 01

    Baca melalui cache

    Sebuah hit langsung kembali dari memori. Database tidak disentuh.

    GET product:1001
  2. 02

    Miss, jadi muat sekali dan cache

    Saat miss aplikasi membaca database sekali dan meng-cache hasilnya selama lima menit.

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

    Beri tag entri menurut ketergantungannya

    Setiap halaman di-cache yang menampilkan produk pencahayaan membawa tag yang sama.

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

    Invalidasi grup

    Harga berubah. Daftar setiap kunci dengan tag itu dan hapus dalam satu pipeline.

    TAG.MEMBERS catalog:lighting
  5. 05

    Entri berumur sangat pendek

    Token kilat, sudah diatur, yang harus lenyap setelah 250 ms, dengan presisi nanodetik.

    NEXPIRE flash:token:9 250000000
Di mana ini cocok

Skenario dunia nyata

Toko online

Halaman produk, harga, dan tingkat stok dibaca ribuan kali per detik dan disegarkan menurut tag saat katalog berubah.

API dan backend seluler

Respons untuk endpoint populer di-cache dengan TTL pendek, sehingga lonjakan trafik mengenai memori, bukan database.

Situs konten

Fragmen yang dirender dan metadata artikel di-cache selama beberapa menit dan di-invalidasi menurut tag saat editor menerbitkan.

Bawaan

Yang Anda dapatkan

TTL dari detik hingga nanodetik

EXPIRE dan PEXPIRE bekerja seperti yang Anda harapkan. NEXPIRE menambahkan presisi nanodetik.

EXPIREPEXPIRENEXPIRE

Invalidasi menurut tag

Beri label pada kunci dengan TAG.SET, lalu temukan setiap kunci dengan suatu label.

TAG.SETTAG.MEMBERS

Kompresi opsional

Payload besar dapat dikompresi agar lebih banyak working set Anda muat di memori.

Pembacaan multi-thread

Perintah dieksekusi pada thread paralel, sehingga throughput tumbuh seiring jumlah core. Angkanya ada di halaman Performa.

GETMGET

Pertanyaan umum

Bisakah saya memakai klien Redis yang sudah ada?

HotKV berbicara protokol Redis (RESP2 dan RESP3), jadi klien Redis standar dapat terhubung ke HotKV. Periksa referensi perintah untuk perintah yang Anda andalkan.

Bagaimana cara meng-invalidasi sekelompok kunci yang di-cache?

Beri tag pada kunci dengan TAG.SET saat Anda meng-cache-nya, lalu panggil TAG.MEMBERS dan hapus apa yang dikembalikan.

Dari mana angka 36.6M berasal?

Itu adalah throughput GET dengan pipeline dari benchmark HotKV yang dipublikasikan. Metode dan perangkat kerasnya ada di halaman Performa.

Kasus penggunaan terkait

Coba pada beban kerja Anda sendiri

HotKV berbicara protokol Redis, jadi Anda dapat mengarahkan klien yang sudah ada ke HotKV dan menjalankan perintah yang sama.