sql >> データベース >  >> NoSQL >> Redis

Redisを使用した通知およびニュースエリア

    私の意見では、この機能はサーバー側で処理する必要があります。特に、ユーザーが複数の種類のクライアント(ブラウザー、電話など)を使用することが予想される場合は

    たとえば、過去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形式で保存できます。

    これがお役に立てば幸いです。




    1. WindowsでRedisを実行するにはどうすればよいですか?

    2. ZookeeperとIn-memory-data-gridとRedis

    3. MongoDB $ tan

    4. オープンソースデータベースを展開する方法