Redis の記事 (アプリケーション ケース - UV 統計) (継続的に更新および反復)

目次

1.ハイパーログログ

2. 数百万のデータの統計をテストする


1.ハイパーログログ

まず、次の 2 つの概念を理解します。

UV: 正式名称はユニーク ビジターであり、ユニーク ビジターとも呼ばれ、インターネットを通じてこの Web ページにアクセスして閲覧する自然人を指します。

同じユーザーが 1 日に複数回 Web サイトにアクセスした場合、記録されるのは 1 回だけです。

PV: 正式名称はページビューで、ユーザーが Web サイト上のページにアクセスするたびに 1 つの PV が記録され、ユーザーはそのページを複数回開きます。

表面には複数のPVが収録されています。

Web サイトのトラフィックを測定するためによく使用されます。

一般に、UV は PV よりもはるかに大きいため、同じ Web サイトへの訪問数を測定する場合は、多くの要素を考慮する必要があります。

したがって、これら 2 つの値を参考値として使用するだけです

ユーザーがカウントされているかどうかを判断するには、カウントされたユーザー情報を保存する必要があるため、サーバー側で UV 統計を行うのはさらに面倒になります。

しかし、訪問したユーザーをすべてRedisに保存するとデータ量が膨大になってしまいますが、どう対処するのでしょうか?

Hyperloglog (HLL) は、Loglog アルゴリズムから派生した確率的アルゴリズムで、すべてを保存する必要なく、非常に大きなセットの濃度を決定するために使用されます。

価値。

関連するアルゴリズム原則を参照できます: https://juejin.cn/post/6844903785744056333#Heading-0

Redis の HLL は文字列構造に基づいて実装されており、単一の HLL のメモリは常に 16kb 未満であり、メモリ使用量は驚くほど低くなります。

トレードオフとして、その測定は確率的であり、誤差は 0.81% 未満です。

しかし、UV 統計の場合、これはまったく無視できます。

2. 数百万のデータの統計をテストする

テストのアイデア: 単体テストを直接使用して 100 万個のデータを HyperLogLog に追加し、メモリ使用量と統計的効果がどのようになるかを確認します。

テスト後: エラーは許容範囲内であり、メモリ使用量は最小限です。

おすすめ

転載: blog.csdn.net/qq_51226710/article/details/142655875