Базові даніПродуктивність

Кешування

Тримайте найгарячіші дані в пам'яті й відповідайте на читання далеко швидше за мілісекунду, на рушії, що задіює кожне ядро.

GET/с у конвеєрі, виміряно
36.6M
точність TTL
нс
наявні клієнти працюють
RESP2/3
Крок 1 з 5
Читайте через кеш

Влучання повертається просто з пам'яті. До бази даних не звертаються.

Приклад сесіїplaying
# Читайте через кеш
hotkv> GET product:1001
"{\"name\":\"Desk lamp\",\"price\":39}"

Анімований покроковий розбір з реальними командами HotKV і прикладами відповідей. Натисніть будь-який крок, щоб перейти до нього. Команди та відповіді залишаються англійською, так само, як ви вводите й бачите їх у HotKV.

Проблема

До бази даних звертатися повільно й дорого, коли дані читають тисячі разів на секунду. Кожен перегляд сторінки, виклик API чи оновлення дашборда повторює той самий запит, і база даних стає вузьким місцем задовго до вашого застосунку.

Як це вирішує HotKV

HotKV стоїть перед базою даних і тримає результати в пам'яті. Ваш застосунок спершу читає з HotKV і повертається до бази лише при промаху. Оскільки HotKV виконує команди на багатьох потоках одночасно, завантажений кеш не проганяє кожного клієнта через одне ядро, а теги дозволяють інвалідувати цілу групу записів, коли змінюються вихідні дані.

Крок за кроком

Що відбувається, команда за командою

  1. 01

    Читайте через кеш

    Влучання повертається просто з пам'яті. До бази даних не звертаються.

    GET product:1001
  2. 02

    Промах, тож завантажте раз і закешуйте

    При промаху застосунок один раз читає базу даних і кешує результат на п'ять хвилин.

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

    Позначайте записи тим, від чого вони залежать

    Кожна кешована сторінка з освітленням має той самий тег.

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

    Інвалідуйте групу

    Ціни змінилися. Перелічіть кожен ключ із тегом і видаліть їх одним конвеєром.

    TAG.MEMBERS catalog:lighting
  5. 05

    Дуже короткоживучі записи

    Флеш-токен, уже встановлений, який має зникнути через 250 мс, з наносекундною точністю.

    NEXPIRE flash:token:9 250000000
Де це доречно

Реальні сценарії

Інтернет-магазини

Сторінки товарів, ціни й залишки читаються тисячі разів на секунду та оновлюються за тегом, коли змінюється каталог.

API та мобільні бекенди

Відповіді популярних кінцевих точок кешуються з короткими TTL, тож сплески трафіку б'ють у пам'ять, а не в базу даних.

Сайти з контентом

Відрендерені фрагменти й метадані статей кешуються на хвилини й інвалідуються за тегом, коли редактор публікує.

Вбудовано

Що ви отримуєте

TTL від секунд до наносекунд

EXPIRE і PEXPIRE працюють, як ви очікуєте. NEXPIRE додає наносекундну точність.

EXPIREPEXPIRENEXPIRE

Інвалідація за тегом

Позначте ключі через TAG.SET, потім знайдіть кожен ключ із позначкою.

TAG.SETTAG.MEMBERS

Необов'язкове стиснення

Великі корисні навантаження можна стискати, щоб у пам'ять вміщалося більше вашого робочого набору.

Багатопотокові читання

Команди виконуються на паралельних потоках, тож пропускна здатність зростає з ядрами. Цифри на сторінці «Продуктивність».

GETMGET

Поширені запитання

Чи можу я використовувати наявний клієнт Redis?

HotKV розмовляє протоколом Redis (RESP2 і RESP3), тож стандартні клієнти Redis підключаються до нього. Перевірте довідник команд щодо команд, на які ви покладаєтеся.

Як інвалідувати групу кешованих ключів?

Позначте ключі через TAG.SET, коли кешуєте їх, потім викличте TAG.MEMBERS і видаліть повернуте.

Звідки взялася цифра 36.6M?

Це пропускна здатність GET у конвеєрі з опублікованого бенчмарка HotKV. Метод і обладнання на сторінці «Продуктивність».

Пов'язані сценарії використання

Спробуйте на власному навантаженні

HotKV розмовляє протоколом Redis, тож ви можете направити на нього наявний клієнт і виконувати ті самі команди.