Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Obszar powiadomień i wiadomości za pomocą Redis

Moim zdaniem ta funkcja powinna być obsługiwana po stronie serwera, zwłaszcza jeśli oczekujesz od użytkowników korzystania z wielu typów klientów (np. przeglądarki, telefonu itp.)

Każde z Twoich wydarzeń powinno mieć sygnaturę czasową, aby wiedzieć, kiedy każde zdarzenie miało miejsce i aby móc odpowiednio przeszukiwać zakresy, w przypadku, gdy musisz uzyskać na przykład ostatnie 24 godziny wydarzeń lub zdarzenia po sygnaturze czasowej X.

Następnie, gdy użytkownik, który obserwuje innego użytkownika, patrzy na jego powiadomienia, możesz ustawić znacznik czasu jako punkt kontrolny, aby wiedzieć, do którego wydarzenia ten użytkownik już widział, a następnie wyświetlać tylko zdarzenia, które są po tym punkcie kontrolnym.

Sposób, w jaki zaimplementowałem szeregi czasowe w REDIS w jednym z naszych projektów, to użycie Sorted Sets (http://redis.io/topics/data-types#sorted-sets). W twoim przypadku możesz przechowywać:

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

Teraz wiesz, że następnym razem, gdy użytkownik 2 wyświetli powiadomienia, pokażesz tylko zdarzenia występujące po tsA, używając ZRANGEBYSCORE user1EventsKey ts2 +inf aby uzyskać wszystkie klucze zdarzeń, a następnie jeden po drugim możesz wyświetlić zdarzenia.

PS. Znacznik czasu może być przechowywany w formacie UNIX.

Mam nadzieję, że to pomoże.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Zablokuj dostęp do klucza Redis (ServiceStack)

  2. Gradle budować lokalne prace. W kontenerze dokowanym tak nie jest. CZEMU?

  3. Enkapsulacja Unicode z redis

  4. Anuluj oferty pracy w Laravel

  5. Czy ustawienie slave-tylko do odczytu nie spowoduje, że slave potwierdzi każde wyszukiwanie skrótu u mastera?