English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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:
Номер | Команда и описание |
---|---|
1 | PFADD key element [element ...] Добавить указанные элементы в HyperLogLog. |
2 | PFCOUNT key [key ...] Вернуть оценку基数 для заданного HyperLogLog. |
3 | PFMERGE destkey sourcekey [sourcekey ...] Объединить несколько HyperLogLog в один HyperLogLog |