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

Redis HyperLogLog

Redisでは 2.8.9 バージョンでは、HyperLogLog構造が追加されました。

Redis HyperLogLogは基数統計を行うアルゴリズムで、HyperLogLogの利点は、入力要素の数または体積が非常に大きい場合でも、基数を計算するために必要な空間が常に固定であることです。 の、そして非常に小さい。

Redisでは、各HyperLogLogキーは非常に小さな 12 KBのメモリであれば、近い値を計算できます。 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) (整数) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mongodb"
1) (整数) 1
redis 127.0.0.1:6379> PFADD w3codeboxkey "mysql"
1) (整数) 1
redis 127.0.0.1:6379> PFCOUNT w3codeboxkey
(整数) 3

Redis HyperLogLog コマンド

以下の表に、redis HyperLogLogの基本的なコマンドが示されています:

順序番号コマンドおよび説明
1PFADD key element [element ...]
指定された要素をHyperLogLogに追加します。
2PFCOUNT key [key ...]
指定されたHyperLogLogの基数の推定値を返します。
3PFMERGE destkey sourcekey [sourcekey ...]
複数のHyperLogLogを1つのHyperLogLogに統合