Базові даніАналітика

Підрахунок у великому масштабі з імовірнісними структурами

Унікальні відвідувачі, «чи ми це бачили?», топ-елементи та частоти по мільярдах подій, кожне в невеликому фіксованому обсязі пам'яті.

імовірнісні структури
4
пам'ять на структуру
Фіксована
межі похибки
Відомі
Крок 1 з 5
Унікальні відвідувачі

Додайте id відвідувачів у HyperLogLog. Пам'ять лишається малою, скільки б їх не надходило.

Приклад сесіїplaying
# Унікальні відвідувачі
hotkv> PFADD visitors:2026-10-16 user:42 user:77 user:91
(integer) 1

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

Проблема

Точні відповіді на «скільки унікальних користувачів», «чи ми вже надсилали цей лист» або «які топ-запити» потребують пам'яті, що зростає з кожним окремим елементом. На мільярдах подій це перетворюється на гігабайти множин і лічильників на кожне запитання.

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

Імовірнісні структури міняють невелику відому похибку на сталу пам'ять. HyperLogLog рахує різні елементи, фільтри Блума відповідають про належність, Top-K відстежує найчастіші елементи, а Count-min sketch оцінює, як часто траплявся будь-який елемент. Усі чотири вбудовано в HotKV.

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

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

  1. 01

    Унікальні відвідувачі

    Додайте id відвідувачів у HyperLogLog. Пам'ять лишається малою, скільки б їх не надходило.

    PFADD visitors:2026-10-16 user:42 user:77 user:91
  2. 02

    Скільки?

    Оцінка кількості різних відвідувачів з малою стандартною похибкою.

    PFCOUNT visitors:2026-10-16
  3. 03

    Ніколи не надсилайте двічі

    Перед надсиланням кампанійного листа перевірте, чи ця адреса вже його отримала.

    BF.EXISTS sent:campaign:fall ada@example.com
  4. 04

    Топ-пошуки

    Top-K зберігає найчастіші елементи, поки події надходять потоком.

    TOPK.LIST searches:today WITHCOUNT
  5. 05

    Як часто для будь-якого елемента

    Count-min sketch оцінює кількість будь-якого елемента, у списку чи ні.

    CMS.QUERY pageviews /home /pricing /blog
Де це доречно

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

Веб- і застосункова аналітика

Щоденні й місячні унікальні користувачі на сторінку чи функцію, об'єднані між днями через PFMERGE.

Пошта та сповіщення

Фільтри Блума зупиняють дубльовані надсилання між повторними спробами та кампаніями.

Пошук і комерція

Топ-запити й найпереглядуваніші товари відстежуються наживо для мерчандайзингу.

Вбудовано

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

HyperLogLog

Кількості різних елементів, що об'єднуються між бакетами.

PFADDPFCOUNTPFMERGE

Фільтри Блума

Належність із налаштовуваною часткою хибнопозитивних результатів.

BF.RESERVEBF.ADDBF.EXISTS

Top-K

Найчастіші елементи в потоці.

TOPK.ADDTOPK.LIST

Count-min sketch

Оцінки частоти для будь-якого елемента.

CMS.INCRBYCMS.QUERY

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

Наскільки вони точні?

Фільтри Блума дозволяють задати частку помилок, а Count-min sketch ширину й глибину. HyperLogLog має малу фіксовану стандартну похибку.

Чи може фільтр Блума пропустити те, що бачив?

Ні. Він може дати хибнопозитивний результат, але ніколи хибнонегативний.

Чи потрібен мені модуль?

Ні. Вони є частиною HotKV.

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

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

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