redisでのHLLの使用hyperloglog

5842 ワード

redisのHLLの使用ここでは公式ドキュメント(中国語翻訳版)の接続を示し、時間の複雑さ、戻り値、コマンドの仕方、使用例などについて詳しく説明しています.
この文書では、各コマンドの概要をまとめ、個人的なケースを示します.
pfadd影響基数推定値を追加すると1を返し、そうでなければ0を返す.keyが存在しない場合の作成時間複雑度O(1)
127.0.0.1:6379> pfadd m1 1 2 3 4 1 2 3 2 2 2 2
(integer) 1

pfcountが得る基数値は基数値に値し、白話ではデウェイト値(1,1,2,2,3)と呼ぶpfcountを挿入して得られるのは、3回に統計可能な複数のkey時間の複雑度がO(N)であり、Nがkeyである個数の戻り値は0.81%の標準エラー(standard error)を持つ近似値である.
127.0.0.1:6379> pfadd m1 1 2 3 4 1 2 3 2 2 2 2
(integer) 1
127.0.0.1:6379> pfcount m1
(integer) 4

pfmergeは複数のkeyを結合して複数のkeyを取る並列コマンドはOKのみを返す.時間複雑度O(N)
127.0.0.1:6379> pfadd m1 1 2 3 4 1 2 3 2 2 2 2
(integer) 1
127.0.0.1:6379> pfcount m1
(integer) 4
127.0.0.1:6379> pfadd m2 3 3 3 4 4 4 5 5 5 6 6 6 1
(integer) 1
127.0.0.1:6379> pfcount m2
(integer) 5
127.0.0.1:6379> pfmerge mergeDes m1 m2
OK
127.0.0.1:6379> pfcount mergeDes
(integer) 6

適用シーンの説明:
基数は大きくなくて、データ量は大きくなくて使えなくて、少し大きい材料は小さくて空間を浪費して限界があって、基数の数量を統計することしかできなくて、具体的な内容がbitmapと比較することができなくて、2種類の特定の統計状況に属して、簡単に言えば、HyperLogLogはbitmapより多くて便利で、一般的にbitmapとhyperloglogが協力して使用することができて、bitmapはどれらのユーザーが活発であることを識別して
統計登録IP数統計毎日アクセスIP数統計ページリアルタイムUV数統計オンラインユーザ数統計ユーザ毎日検索異なる単語の個数参照リンク不思議なHyperLogアルゴリズムRedis new data structure:the HyperLogLog原論文ページ:HyperLogLog:the analysis of a near-optimal cardinality estimation algorithm java実現HyperLogのgithub基数推定アルゴリズム概要hyperlogjava版使用参考java使用例:Probabilistic data Structures–Bloom filter and HyperLogLog for Big Data