redis

2012-05-22 17 views
87

किसी को भी जब आप एक दूसरे के साथ संयोजन के रूप में Redis और MongoDB का उपयोग करने से लाभ होगा के उदाहरण उपयोग के मामलों दे सकते हैं के साथ MongoDB?redis

उत्तर

153

Redis और MongoDB अच्छे परिणाम के साथ उपयोग किया जा सकता है। एक कंपनी (MySQL और स्फिंक्स के साथ) MongoDB और Redis चलाने के लिए अच्छी तरह से ज्ञात Craiglist है। जेरेमी ज़वादनी से this presentation देखें।

MongoDB लगातार के लिए दिलचस्प है, उन्मुख दस्तावेज, विभिन्न तरीकों से अनुक्रमित डेटा। अस्थिर डेटा, या विलंबता संवेदनशील अर्ध-निरंतर डेटा के लिए रेडिस अधिक दिलचस्प है।

यहाँ MongoDB के शीर्ष पर Redis के ठोस उपयोग के कुछ उदाहरण हैं।

  • प्री-2.2 मोंगोडीबी का अभी तक एक समाप्ति तंत्र नहीं है। वास्तविक टीटीएल को लागू करने के लिए कैप्ड संग्रह का वास्तव में उपयोग नहीं किया जा सकता है। रेडिस में टीटीएल-आधारित समाप्ति तंत्र है, जिससे अस्थिर डेटा स्टोर करना सुविधाजनक हो जाता है। उदाहरण के लिए, उपयोगकर्ता सत्र आमतौर पर, Redis में जमा हो जाती उपयोगकर्ता डेटा संग्रहीत किया जाएगा, जबकि और MongoDB में अनुक्रमित। ध्यान दें कि MongoDB 2.2 संग्रह स्तर पर एक कम सटीकता समाप्ति तंत्र शुरू की है (उदाहरण के लिए डेटा के शुद्धिकरण के लिए प्रयोग की जाने वाली)।

  • Redis एक सुविधाजनक सेट डेटाप्रकार और इससे संबंधित परिचालन (संघ, चौराहे, एकाधिक सेट पर अंतर, आदि ...) प्रदान करता है। यह काफी बुनियादी पहलुओं वाली खोज या इस सुविधा है, जो MongoDB के लिए एक दिलचस्प इसके अलावा अधिक परंपरागत अनुक्रमण क्षमताओं है के शीर्ष पर टैगिंग इंजन को लागू करने के लिए आसान है।

  • Redis सूची में कुशल अवरुद्ध पॉप आपरेशन का समर्थन करता है। इसका उपयोग विज्ञापन-प्रसार वितरित क्यूइंग सिस्टम को लागू करने के लिए किया जा सकता है। यह IMO MongoDB tailable कर्सर से अधिक लचीला है के बाद से एक बैकेंड आवेदन, आदि एक टाइमआउट के साथ कई कतारों को सुन सकते हैं atomically एक और कतार में आइटम हस्तांतरण, ... आवेदन कुछ कतार की आवश्यकता है, यह समझ में आता है Redis में स्टोर करने के लिए कतार , और MongoDB में लगातार कार्यात्मक डेटा रखें।

  • रेडिस एक पब/उप तंत्र भी प्रदान करता है। एक वितरित अनुप्रयोग में, एक घटना प्रसार प्रणाली उपयोगी हो सकती है। रेडिस के लिए यह फिर से एक उत्कृष्ट उपयोग मामला है, जबकि लगातार डेटा मोंगोडीबी में रखा जाता है।

क्योंकि यह बहुत आसान है Redis के साथ की तुलना में MongoDB (Redis अधिक निम्न स्तर है) के साथ एक डाटा मॉडल डिजाइन करने के लिए, यह मुख्य लगातार डेटा के लिए MongoDB के लचीलेपन से लाभ के लिए दिलचस्प है, और अतिरिक्त से Redis द्वारा उपलब्ध कराई गई सुविधाओं (कम प्रतीक्षा अवधि, आइटम समाप्ति, कतार, पब/उप परमाणु ब्लॉक, आदि ...)। यह वास्तव में एक अच्छा संयोजन है।

कृपया ध्यान दें कि आपको उसी मशीन पर कभी भी रेडिस और मोंगोडीबी सर्वर नहीं चलाया जाना चाहिए। मोंगोडीबी मेमोरी को स्वैप करने के लिए डिज़ाइन किया गया है, रेडिस नहीं है। यदि मोंगोडीबी कुछ स्वैपिंग गतिविधि को ट्रिगर करता है, तो रेडिस का प्रदर्शन विनाशकारी होगा। उन्हें विभिन्न नोड्स पर अलग किया जाना चाहिए।

+19

MongoDB 2.2 (बस जारी) टीटीएल समर्थन जोड़ता है, जो आपके पहले बिंदु को संबोधित करता है: http://docs.mongodb.org/manual/tutorial/expire-data/ –

+0

प्रत्येक की तुलनात्मक शक्तियों में से कुछ के बारे में महान बिंदु। –

+2

प्रत्येक की तुलनात्मक शक्तियों में से कुछ के बारे में महान बिंदु। रेडिस के बिंदुओं में से एक स्मृति में ट्यूनिंग है। कम विलंबता पर केंद्रित अन्य परियोजनाएं हैं, जैसे एयरोस्पेकडीबी, जो क्लस्टरिंग और विश्वसनीयता पर केंद्रित है, और एसएसडी स्टोरेज पर भी ध्यान केंद्रित करती है, जिसका उपयोग वास्तविक समय के मामले में किया जा सकता है जब रेडिस आसानी से संभाल सकता है। –

22

जाहिर है इस से दूर अधिक मतभेद हैं, लेकिन एक अत्यंत उच्च अवलोकन के लिए:

के लिए उपयोग-मामले:

  • Redis अक्सर एक कैशिंग परत के रूप में या साझा व्हाइटबोर्ड के लिए वितरित किया जाता है गणना।
  • मोंगोडीबी को पारंपरिक एसक्यूएल डेटाबेस के लिए अक्सर स्वैप-आउट प्रतिस्थापन के रूप में उपयोग किया जाता है।
तकनीकी तौर पर

:

  • Redis डिस्क हठ (पूरे db रैम में फिट करने के लिए की जरूरत है) के साथ एक में स्मृति डाटाबेस है।
  • मोंगोडीबी एक डिस्क-बैक डीबी है जिसे केवल इंडेक्स के लिए पर्याप्त रैम की आवश्यकता होती है।

कुछ ओवरलैप है, लेकिन दोनों का उपयोग करना बेहद आम है। यहां बताया गया है:

  • मोंगोडीबी अधिक डेटा सस्ता स्टोर कर सकता है।
  • रेडिस पूरे डेटासेट के लिए तेज़ है।
  • MongoDB की संस्कृति "यह सब स्टोर, उपयोग पैटर्न बाद में यह पता लगाने"
  • Redis की संस्कृति है "सावधानी से विचार करें आप डेटा कैसे पहुंच जाएंगे, तो स्टोर"
  • दोनों खुला स्रोत उपकरण है कि उन पर निर्भर है, कई है जिनमें से एक साथ उपयोग किया जाता है।

Redis एक पारंपरिक डेटासंग्रह के लिए एक स्थानापन्न के रूप में इस्तेमाल किया जा सकता है, लेकिन यह सबसे अधिक बार एक और सामान्य "लंबे" डेटा स्टोर, मोंगो, PostgreSQL, MySQL की तरह साथ प्रयोग किया जाता है, आदि

संबंधित मुद्दे