Redis HyperLogLogによる効率的なユニークユーザー数計数
HyperLogLogの概要とメリット
Webサービスにおいて、特定のページのユニークユーザー数(UV)を計測することは非常に一般的な要件です。単純なアクセス数(PV)であればカウンタをインクリメントするだけで済みますが、重複を排除したUV計数の場合、単純なアプローチではメモリ効率が課題となります。
例えば、RedisのSet型を使用してユーザーIDを保存する方法があります。 ...
8月23日 15:50 投稿
Redisビットマップを使った月間チェックイン機能のJava実装
ポイントサービスやキャンペーンアプリでよくある「本日のチェックイン」機能を、Redis のビットマップ機能を使って高速・省メモリに実装する方法を解説します。Redis の SETBIT / BITFIELD を活用することで、1 ユーザーあたり月 31 日分のデータをわずか 4 byte で保持できます。
設計方針
1 ビット = 1 日の出欠を表現
キーは checkin:{userId}:{yyyyMM} の形式
offse ...
7月16日 17:12 投稿
Redis Sorted Set 削除が効かない原因と回避策
Spring Data Redis の ZSetOperations.remove(K key, Object… values) を使っても、値を「更新した後」に削除しようとすると 該当メンバーが見つからず削除できない という現象が発生した。本記事では再現手順と回避策を示す。
事象の概要
新規レコードを追加(addData)
一部フィールドを変更して再追加(updateData)
更新後の値を指定して削除(removeData)
3 の時 ...
5月11日 06:03 投稿