मेरी राय में इस फ़ंक्शन को सर्वर की ओर से संभाला जाना चाहिए, खासकर यदि आप उपयोगकर्ताओं से कई प्रकार के क्लाइंट (जैसे, ब्राउज़र, फोन आदि) का उपयोग करने की अपेक्षा करते हैं।
आपके प्रत्येक ईवेंट में एक टाइमस्टैम्प होना चाहिए ताकि यह पता चल सके कि प्रत्येक ईवेंट कब हुआ था और यदि आपको प्राप्त करने की आवश्यकता है, तो उसके अनुसार श्रेणी खोज करने में सक्षम होने के लिए, उदाहरण के लिए पिछले 24 घंटों के ईवेंट, या टाइमस्टैम्प X के बाद की घटनाएं।
फिर जब किसी अन्य उपयोगकर्ता का अनुसरण करने वाला उपयोगकर्ता उसकी सूचनाओं को देखता है, तो आप यह जानने के लिए चेकपॉइंट के रूप में टाइमस्टैम्प सेट कर सकते हैं कि इस उपयोगकर्ता ने कौन सी घटना पहले ही देखी है और उसके बाद ही उस चेकपॉइंट के बाद की घटनाओं को दिखा सकते हैं।
जिस तरह से मैंने अपनी परियोजनाओं में से एक में रेडिस में टाइमरीज को लागू किया है, वह सॉर्टेड सेट (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
अब आप जानते हैं कि अगली बार जब उपयोगकर्ता 2 सूचनाओं को देखता है तो आप केवल वही दिखाएंगे जो टीएसए के बाद की घटनाएं हैं ZRANGEBYSCORE user1EventsKey ts2 +inf
का उपयोग करके सभी ईवेंट कुंजियाँ प्राप्त करने के लिए और फिर एक-एक करके आप ईवेंट प्रदर्शित कर सकते हैं।
पुनश्च. टाइमस्टैम्प को UNIX प्रारूप में संग्रहीत किया जा सकता है।
मुझे आशा है कि यह मदद करता है।