Redis データ型(HyperLogLogs)

スポンサーリンク

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> 
タイトルとURLをコピーしました