Naar mijn mening moet deze functie aan de serverzijde worden afgehandeld, vooral als u verwacht dat gebruikers meerdere typen clients gebruiken (bijv. browser, telefoon, enz.)
Elk van uw gebeurtenissen moet een tijdstempel hebben om te weten wanneer elke gebeurtenis heeft plaatsgevonden en om dienovereenkomstig te kunnen zoeken in het bereik, voor het geval u bijvoorbeeld de laatste 24 uur van gebeurtenissen of gebeurtenissen na tijdstempel X moet zien.
Wanneer de gebruiker die een andere gebruiker volgt haar meldingen bekijkt, kun je een tijdstempel instellen als controlepunt om te weten tot welke gebeurtenis deze gebruiker al heeft gezien en dan alleen de gebeurtenissen weergeven die na dat controlepunt liggen.
De manier waarop ik tijdreeksen in REDIS in een van onze projecten heb geïmplementeerd, is door Sorted Sets te gebruiken (http://redis.io/topics/data-types#sorted-sets). In jouw geval zou je kunnen opslaan:
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
Nu weet je dat de volgende keer dat user2 de meldingen bekijkt, je alleen de gebeurtenissen na tsA zult laten zien met behulp van ZRANGEBYSCORE user1EventsKey ts2 +inf
om alle gebeurtenissleutels te krijgen en vervolgens kunt u de gebeurtenissen één voor één weergeven.
ps. De tijdstempel kan worden opgeslagen in het UNIX-formaat.
Ik hoop dat dit helpt.