English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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の基本的なコマンドが示されています:
順序番号 | コマンドおよび説明 |
---|---|
1 | PFADD key element [element ...] 指定された要素をHyperLogLogに追加します。 |
2 | PFCOUNT key [key ...] 指定されたHyperLogLogの基数の推定値を返します。 |
3 | PFMERGE destkey sourcekey [sourcekey ...] 複数のHyperLogLogを1つのHyperLogLogに統合 |