それは一般的なタスクのようですが、解決策は見つかりませんでした。
過去 24 時間あたりのユーザーのイベント数 (たとえば、彼が残したコメントの数) を計算する必要があります。古いデータは私にとって興味深いものではないため、1 か月前に追加されたコメントに関する情報は Redis から削除する必要があります。
今、私は1つの解決策しか見ていません。ユーザーの ID と時刻を含むキーを作成し、その値をインクリメントできます。次に、24 個の値を取得し、それらの合計を計算します。各キーには 24 時間の有効期限があります。
例えば、
- 6 月 22 日 13:27 のイベント -> キー _22_13 の作成 = 1
- 6 月 22 日 13:40 のイベント -> 増分キー _22_13 = 2
- 6 月 22 日 18:45 のイベント -> キー _22_18 の作成 = 1
- 6 月 23 日 16:00 のイベント -> キー _23_16 の作成 = 1
- 6 月 23 日 16:02 にイベントの合計を取得 -> キーの合計 _22_17 - _22_23、_23_00 - _23_16: 私たちのキーでは _22_18 と _23_16 のみで、結果は 2 です。キー _22_13 と _22_13 は期限切れです。
この方法は正確ではなく (24+0..1 時間あたりのイベント数を計算します)、普遍的でもありません (過去 768 分または 2.5 か月あたりのイベント数が必要な場合、どのキーを選択すればよいでしょうか?)。
Redis データ型を使用したより良い解決策はありますか?