私の意見では、この機能はサーバー側で処理する必要があります。特に、ユーザーが複数の種類のクライアント(ブラウザー、電話など)を使用することが予想される場合は
たとえば、過去24時間のイベント、またはタイムスタンプX以降のイベントを取得する必要がある場合に備えて、各イベントには、各イベントがいつ発生したかを認識し、それに応じて範囲検索を実行できるようにするためのタイムスタンプが必要です。
次に、別のユーザーをフォローしているユーザーが自分の通知を見るときに、タイムスタンプをチェックポイントとして設定して、このユーザーがすでに見たイベントを確認し、そのチェックポイント以降のイベントのみを表示できます。
プロジェクトの1つでREDISに時系列を実装する方法は、Sorted Sets(http://redis.io/topics/data-types#sorted-sets)を使用することです。あなたの場合、あなたは保存することができます:
user1EventsKey -> [{ts1, eventKey1}, {ts2, eventKey2}, {ts3, eventKey3},... ]
# This is the sorted set
eventKey1 -> [photo1, photo2, photo3]
eventKey2 -> [photo4, photo5]
...
user2Checkpoint -> tsA #where ts2 < tsA < ts3
これで、次にuser2が通知を表示するときに、ZRANGEBYSCORE user1EventsKey ts2 +inf
を使用してtsA以降のイベントのみが表示されることがわかりました。 すべてのイベントキーを取得してから、イベントを1つずつ表示できます。
PS。タイムスタンプはUNIX形式で保存できます。
これがお役に立てば幸いです。