まず、概念
1は、2.8.9リリースではRedisのはHyperLogLog構造が追加されます。
入力ボリュームまたは要素の数が非常に大きい場合、計算に必要な空間が常に固定ベースであり、そして非常に小さい:2、RedisのHyperLogLog基数は、統計的アルゴリズムのために使用される、HyperLogLogの利点があることです。
図3は、Redisのここで、各キーにのみ、HyperLogLogの12キロバイトのメモリを取り、ほぼ2 ^ 64の異なる基本要素を算出することができます。この計算および塩基、より多くの組の記憶素子のコスト、よりコントラスト場合。
HyperLogLog各リターン入力要素として設定するように4が、しかし、入力要素に従って計算のみHyperLogLogベースので、入力要素自体を記憶することなく、そうではありません。
カーディナリティは何である
そのようなデータセット{1,3,5,7,5,7,8}、データセット{1,3,5,7,8}のカーディナリティ、塩基(要素を繰り返さない)5 。カーディナリティ推定誤差が許容範囲、高速計算基準の範囲内です。
二、HyperLogLog関連のコマンド
- コマンド名:pfadd
- 構文:pfaddキー要素[要素......]
- 特徴:
- 内部の指定されたHyperLogLogに任意の数の要素を追加します。
- このコマンドの副作用として、内部HyperLogLogは異なるでユニークな要素の推定数(すなわち、集合の濃度)を反映するように更新されてもよいです。
- 戻り値:
- 整数返信:内部記憶HyperLogLogが変更された場合、それは、1を返し、それ以外の場合は0を返します。
- コマンド名:pfcount
- 構文:pfcountキー[キー......]
- 特徴:
- pfcountコマンドキーとして機能し、ベースHyperLogLogはキーを与えられた約リザーバに戻るとキーが存在しない場合は、0が返されます。
- 複数のキーにpfcountコマンドが作用し、近似HyperLogLog及びベースの全て所定のセットを返す場合、ベースは約一時HyperLogLog HyperLogLogを算出するために組み合わせ全てによって与えられます。
- 戻り値:
- 整数返信:与えられたHyperLogLogを備えたユニークな要素のおおよその数。
- コマンド名:pfmerge
- 语法:pfmerge destkey SOURCEKEY [SOURCEKEY ......]
- 特徴:
- 合わせた複数HyperLogLogは(マージ)を合わせ、すべての可視HyperLogLogのセット入力(観察されたセット)とセットのベースにHyperLogLog、HyperLogLog閉じるあります。
- 戻り値:
- OKを返します