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

मोंगोडीबी बनाम रेडिस बनाम कैसेंड्रा एक तेजी से लिखने, अस्थायी पंक्ति भंडारण समाधान के लिए

इस तरह के एक कटाई समाधान के लिए, मैं एक बहु-स्तरीय दृष्टिकोण की सिफारिश करता हूं। रेडिस रियल टाइम कम्युनिकेशन में अच्छा है . रेडिस को इन-मेमोरी कुंजी/वैल्यू स्टोर के रूप में डिज़ाइन किया गया है और मेमोरी डेटाबेस होने के कुछ बहुत अच्छे लाभ प्राप्त होते हैं:ओ (1) सूची संचालन। जब तक सर्वर पर उपयोग करने के लिए RAM है, तब तक Redis आपकी सूचियों के अंत तक पुश करने की गति को धीमा नहीं करेगा, जो तब अच्छा होता है जब आपको इतनी अधिक दर पर आइटम डालने की आवश्यकता होती है। दुर्भाग्य से, Redis आपके पास मौजूद RAM की मात्रा से बड़े डेटा सेट के साथ काम नहीं कर सकता (यह केवल लिखता है डिस्क पर, रीडिंग सर्वर को पुनरारंभ करने या सिस्टम क्रैश के मामले में है) और स्केलिंग आप द्वारा की जानी चाहिए और आपका आवेदन . (एक आम तरीका है कि कई सर्वरों में कुंजियों को फैलाना है, जो कुछ रेडिस ड्राइवरों द्वारा विशेष रूप से रूबी ऑन रेल्स के लिए लागू किया जाता है।) रेडिस के पास सरल प्रकाशन/सदस्यता मेसेंजिंग के लिए भी समर्थन है, जो कभी-कभी उपयोगी भी हो सकता है।

इस परिदृश्य में, Redis "चरण एक" है। प्रत्येक विशिष्ट प्रकार की घटना के लिए आप एक अद्वितीय नाम के साथ Redis में एक सूची बनाते हैं; उदाहरण के लिए हमारे पास "पृष्ठ देखा गया" और "लिंक क्लिक किया गया" है। सादगी के लिए हम यह सुनिश्चित करना चाहते हैं कि प्रत्येक सूची में डेटा समान संरचना हो; क्लिक किए गए लिंक में उपयोगकर्ता टोकन, लिंक नाम और URL हो सकता है, जबकि देखे गए पृष्ठ में केवल उपयोगकर्ता टोकन और URL हो सकता है। आपकी पहली चिंता सिर्फ इस तथ्य को प्राप्त करना है कि यह हुआ और जो कुछ भी बिल्कुल आवश्यक आपके लिए आवश्यक डेटा पुश किया जाता है।

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

MongoDB दस्तावेज़ संग्रहण में अच्छा है . रेडिस के विपरीत यह रैम से बड़े डेटाबेस से निपटने में सक्षम है और यह अपने आप ही तेज/प्रतिकृति का समर्थन करता है। SQL-आधारित विकल्पों पर MongoDB का एक लाभ यह है कि आपके पास पूर्व निर्धारित स्कीमा नहीं है, आप किसी भी समय डेटा संग्रहीत करने के तरीके को बदलने के लिए स्वतंत्र हैं।

हालांकि, मैं प्रसंस्करण के लिए डेटा रखने के "चरण एक" चरण के लिए रेडिस या मोंगो का सुझाव दूंगा और पोस्ट-प्रोसेस किए गए डेटा को स्टोर करने के लिए पारंपरिक एसक्यूएल सेटअप (पोस्टग्रेस या एमएसएसक्यूएल, शायद) का उपयोग करूंगा। क्लाइंट व्यवहार को ट्रैक करना मेरे लिए संबंधपरक डेटा की तरह लगता है, क्योंकि आप "मुझे इस पृष्ठ को देखने वाले सभी लोगों को दिखाएं" या "इस व्यक्ति ने इस दिन कितने पृष्ठ देखे" या "कुल मिलाकर किस दिन सबसे अधिक दर्शक थे? ". विश्लेषणात्मक उद्देश्यों के लिए और भी अधिक जटिल जोड़ या प्रश्न हो सकते हैं, और परिपक्व SQL समाधान आपके लिए इस फ़िल्टरिंग का बहुत कुछ कर सकते हैं; NoSQL (Mongo या Redis विशेष रूप से) डेटा के विभिन्न सेटों में जॉइन या जटिल क्वेरी नहीं कर सकता।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ConnectMultiplexer डिस्कनेक्ट से कैसे निपटता है?

  2. रेडिस:कुंजी के लिए डेटाबेस आकार/आकार दिखाएं

  3. Redis Conf18 पर Rdbtools

  4. रेडिस क्लस्टर - उत्पादन तैयार है?

  5. AWS वर्चुअल प्राइवेट क्लाउड (VPC) में Redis™ के लिए स्केलग्रिड DBaaS परिनियोजित करें