Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस का उपयोग करके अधिसूचना और समाचार क्षेत्र

मेरी राय में इस फ़ंक्शन को सर्वर की ओर से संभाला जाना चाहिए, खासकर यदि आप उपयोगकर्ताओं से कई प्रकार के क्लाइंट (जैसे, ब्राउज़र, फोन आदि) का उपयोग करने की अपेक्षा करते हैं।

आपके प्रत्येक ईवेंट में एक टाइमस्टैम्प होना चाहिए ताकि यह पता चल सके कि प्रत्येक ईवेंट कब हुआ था और यदि आपको प्राप्त करने की आवश्यकता है, तो उसके अनुसार श्रेणी खोज करने में सक्षम होने के लिए, उदाहरण के लिए पिछले 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 प्रारूप में संग्रहीत किया जा सकता है।

मुझे आशा है कि यह मदद करता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस प्रहरी डॉकर छवि / डॉकरफाइल

  2. सभी रेडिस डेटाबेस को कैसे सूचीबद्ध करें?

  3. रेडिस क्लस्टर के साथ, हैश टैग को निकालने के लिए केवल पास करना संभव है?

  4. मुझे Redis कनेक्शन को क्यों बंद या खुला रखना चाहिए?

  5. देरी_जॉब्स बनाम रेस्क्यू बनाम बीनस्टॉकड?