English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

HyperLogLog Redis

Redis добавил структуру HyperLogLog в версии 2.8.9.

Redis HyperLogLog используется для статистики базового набора данных. Преимущество HyperLogLog в том, что при очень большом количестве или объеме вводимых элементов пространство, необходимое для вычисления базового набора данных, всегда фиксировано и очень маленький.

В Redis каждый HyperLogLog ключ требует всего 12 КБ памяти для вычисления接近 2^64 различных элементов базового набора. чисел. Это резко контрастирует с набором, для которого количество элементов越多, тем больше затраты памяти.

Но, поскольку HyperLogLog учитывает только вводимые элементы для вычисления基数, а не хранит сам вводимые элементы, поэтому HyperLogLog не может возвращать различные элементы ввода, как это делают наборы.

Что такое基数?

Например, данные набора {1, 3, 5, 7, 5, 7, 8}, тогда базовый набор данных этого набора данных составляет {1, 3, 5, 7, 8}, базовый набор (не повторяющиеся элементы) составляет 5. Оценка基数 заключается в быстром вычислении基数 в пределах приемлемой ошибки.

Онлайн пример

Ниже приведен пример работы HyperLogLog:

redis 127.0.0.1:6379> PFADD w3codeboxkey "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT w3codeboxkey
(integer) 3

Команды Redis HyperLogLog

В таблице ниже перечислены основные команды redis HyperLogLog:

НомерКоманда и описание
1PFADD key element [element ...]
Добавить указанные элементы в HyperLogLog.
2PFCOUNT key [key ...]
Вернуть оценку基数 для заданного HyperLogLog.
3PFMERGE destkey sourcekey [sourcekey ...]
Объединить несколько HyperLogLog в один HyperLogLog