RedisにはStrings, Lists, Sets, Hashes, Sorted Setsなどのデータ型があります。このページではHyperLogLogs型の使い方を説明します。
前提
公式ドキュメント
参考になる公式ドキュメントを以下に示します。
動作確認済環境
- Rocky Linux 8.6
- Redis 5.0.3
コマンド一覧
Bitmapsを操作するコマンドを以下にまとめます。
コマンド | 意味 |
---|---|
PFADD key element [element …] | HyperLogLogs型のデータを登録します |
PFCOUNT key [key …] | HyperLogLogs型のデータのユニークな値の数(cardinality)を返します |
HyperLogLogs
概要
HyperLogLogsはユニークな値の数(cardinality)を求めるのに適したデータ型です。正確なcardinalityではありませんが、0.81%の標準誤差でcardinalityを算出します。
cardinalityを算出が求められるユースケースは、apacheやnignxのアクセスログからユニークユーザを求めるような処理です。RedisのHyperLogLogs型を使えば、Linuxのawkやuniqコマンドで集計するよりも高速に処理できます。
操作例
PFADDコマンドを使用すると、HyperLogLogsのデータを登録できます。操作例は以下の通りです。
127.0.0.1:6379> PFADD accesslog-20221201 user0000 (integer) 1 127.0.0.1:6379> PFADD accesslog-20221201 user0001 (integer) 1 127.0.0.1:6379> PFADD accesslog-20221201 user0002 (integer) 1 127.0.0.1:6379> PFADD accesslog-20221201 user0000 (integer) 0 127.0.0.1:6379>
PFCOUNTコマンドを使用すると、ユニークな値の数(cardinality)を返します。
127.0.0.1:6379> PFCOUNT accesslog-20221201 (integer) 3 127.0.0.1:6379>