Интернет-магазины
Страницы товаров, цены и остатки читаются тысячи раз в секунду и обновляются по тегу при изменении каталога.
Держите самые горячие данные в памяти и отвечайте на чтение за малую долю миллисекунды на движке, который задействует каждое ядро.
Попадание возвращается прямо из памяти. База данных не затрагивается.
Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.
Обращаться к базам данных за данными, которые читаются тысячи раз в секунду, медленно и дорого. Каждый просмотр страницы, вызов API или обновление дашборда повторяет один и тот же запрос, и база данных становится узким местом задолго до вашего приложения.
HotKV стоит перед базой данных и держит результаты в памяти. Ваше приложение сначала читает из HotKV и обращается к базе данных только при промахе. Поскольку HotKV выполняет команды на многих потоках одновременно, нагруженный кеш не пропускает всех клиентов через одно ядро, а теги позволяют инвалидировать целую группу записей, когда меняются исходные данные.
Попадание возвращается прямо из памяти. База данных не затрагивается.
GET product:1001При промахе приложение один раз читает базу данных и кеширует результат на пять минут.
SET product:2002 "{\"name\":\"Oak desk\",\"price\":420}" EX 300Каждая кешированная страница, где показаны осветительные товары, несёт один и тот же тег.
TAG.SET product:1001 catalog:lightingЦены изменились. Перечислите все ключи с тегом и удалите их одним конвейером.
TAG.MEMBERS catalog:lightingОдноразовый токен, уже установленный, который должен исчезнуть через 250 мс с наносекундной точностью.
NEXPIRE flash:token:9 250000000Страницы товаров, цены и остатки читаются тысячи раз в секунду и обновляются по тегу при изменении каталога.
Ответы популярных конечных точек кешируются с короткими TTL, поэтому всплески трафика попадают в память, а не в базу данных.
Отрисованные фрагменты и метаданные статей кешируются на минуты и инвалидируются по тегу, когда редактор публикует материал.
EXPIRE и PEXPIRE работают так, как вы ожидаете. NEXPIRE добавляет наносекундную точность.
EXPIREPEXPIRENEXPIREПометьте ключи командой TAG.SET, затем найдите все ключи с меткой.
TAG.SETTAG.MEMBERSБольшие объёмы данных можно сжимать, чтобы в памяти помещалось больше вашего рабочего набора.
Команды выполняются на параллельных потоках, поэтому пропускная способность растёт с числом ядер. Цифры - на странице «Производительность».
GETMGETHotKV понимает протокол Redis (RESP2 и RESP3), поэтому стандартные клиенты Redis подключаются к нему. Проверьте справочник команд на предмет команд, на которые вы полагаетесь.
Пометьте ключи командой TAG.SET при кешировании, затем вызовите TAG.MEMBERS и удалите то, что вернулось.
Это пропускная способность GET с конвейером из опубликованного бенчмарка HotKV. Методика и оборудование - на странице «Производительность».
HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.