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

हज़ारों मध्यम आकार के दस्तावेज़ों को संग्रहीत करने के लिए सबसे कुशल दस्तावेज़-उन्मुख डेटाबेस इंजन क्या है?

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

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

आप गति का भी उल्लेख करते हैं। रेडिस बहुत तेज है, और मोंगो भी खराब नहीं है, हालांकि, आपके उपयोग के मामले में मोंगो का उपयोग करना तेज हो सकता है। ध्यान दें कि मैं उपयोग कर रहा हूं मोंगो, ऐसा नहीं है कि मोंगो ही तेज होगा। बात यह है कि, यदि आप रेडिस के साथ जाते हैं और फिर भी किसी ऐसे क्षेत्र का उपयोग करके दस्तावेज़ की खोज करने में सक्षम होना चाहते हैं जो प्राथमिक कुंजी नहीं है, तो जैसा कि मैंने ऊपर उल्लेख किया है, आपको इसे स्वयं लागू करना होगा। फिर एक खोज को रेडिस को कम से कम दो अनुरोध करने होंगे, एक इंडेक्स में देखने के लिए, और दूसरा दस्तावेज़ प्राप्त करने के लिए। यदि खोज के परिणामस्वरूप एक से अधिक दस्तावेज़ मिलते हैं, तो आपको प्रत्येक दस्तावेज़ के लिए अलग-अलग अनुरोध करना होगा। इन सभी अनुरोधों को करने का ऊपरी भाग शायद रेडिस का उपयोग मोंगो के उपयोग से भी बदतर बना देगा। मेरे अनुभव में, सबसे सरल कैश, कतार, या इसी तरह की चीज़ों के अलावा किसी भी चीज़ को रेडिस से वह सब कुछ प्राप्त करने के लिए एक से अधिक अनुरोध करने की आवश्यकता होती है जिसकी उसे आवश्यकता होती है।

इसलिए, मेरे पास सीमित जानकारी के साथ, मैं MongoDB की अनुशंसा करता हूं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. सभी उपलब्ध कुंजी प्राप्त करने के लिए रेडिस कमांड?

  2. रेडिस में उच्चारण के साथ स्ट्रिंग को कैसे सहेजना और पुनर्प्राप्त करना है?

  3. रेडिस टाइप किया गया क्लाइंट

  4. उपयोगकर्ता मिलान एल्गोरिथ्म

  5. मैं रूबी में एक बहु ब्लॉक के अंदर रेडिस से कैसे पढ़ सकता हूं?