3

redisは分析のために生まれたと言われ、ケースを使用していくつかのビットマップに出くわしました。yes / no(0/1)に基づいてカウントする場合に役立ちますが、過去10日間に少なくとも4回ログインしたユーザーの数をカウントする効率的な方法を見つけることができません。redisはメモリ内で実行されるため、ビットマップを使用して各ユーザーのログインフラグを追跡し、ラップトップでbitcount to filerを使用して、約400万人のユーザーのログインアクティビティからカウントを返すのに1分かかりました。

この問題を解決する方法はありますか?ノードのredisクライアントとredisサーバー間のラウンドトリップが問題になる可能性があると思います。バッチコマンドまたはluaスクリプトを試して、機能するかどうかを確認します。

4

1 に答える 1

1

値にユーザーID、スコアにタイムスタンプを指定してSortedSetsを使用する必要があると思います。ユーザーがログインすると、このユーザーのスコア (タイム スタンプ) が最新に更新されます。最後にログインしたN人のユーザー(ZREVRANGE)、または特定の日時範囲(ZRANGEBYSCORE)の間にログインしたユーザーを取得できます。

于 2012-12-31T09:52:25.040 に答える