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

रेडिस सिंगल-थ्रेडेड है, तो यह समवर्ती I/O कैसे करता है?

वैसे यह इस बात पर निर्भर करता है कि आप समवर्ती को कैसे परिभाषित करते हैं।

सर्वर-साइड सॉफ़्टवेयर में, समवर्ती और समांतरता को अक्सर विभिन्न अवधारणाओं के रूप में माना जाता है। एक सर्वर में, समवर्ती I/Os का समर्थन करने का अर्थ है कि सर्वर केवल एक संगणना इकाई के साथ उन ग्राहकों के अनुरूप कई प्रवाहों को निष्पादित करके कई ग्राहकों की सेवा करने में सक्षम है। इस संदर्भ में, समानांतरवाद का मतलब होगा कि सर्वर एक ही समय में (कई गणना इकाइयों के साथ) कई काम करने में सक्षम है, जो अलग है।

उदाहरण के लिए एक बारटेंडर कई ग्राहकों की देखभाल करने में सक्षम होता है जबकि वह एक समय में केवल एक पेय तैयार कर सकता है। इसलिए वह समांतरता के बिना समवर्ती प्रदान कर सकता है।

इस प्रश्न पर यहाँ बहस की गई है:समवर्ती और समांतरता में क्या अंतर है?

रॉब पाइक की यह प्रस्तुति भी देखें।

एक सिंगल-थ्रेडेड प्रोग्राम निश्चित रूप से I/O (डी) मल्टीप्लेक्सिंग मैकेनिज्म और एक इवेंट लूप (जो कि रेडिस करता है) का उपयोग करके I/O स्तर पर समवर्ती प्रदान कर सकता है।

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

तथ्य यह है कि रेडिस ऑपरेशंस परमाणु हैं, केवल सिंगल-थ्रेडेड इवेंट लूप का परिणाम है। दिलचस्प बात यह है कि परमाणुता बिना किसी अतिरिक्त लागत के प्रदान की जाती है (इसे सिंक्रनाइज़ेशन की आवश्यकता नहीं होती है)। सिंक्रनाइज़ेशन ओवरहेड के भुगतान के बिना आशावादी लॉकिंग और अन्य पैटर्न को लागू करने के लिए उपयोगकर्ता द्वारा इसका फायदा उठाया जा सकता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Django बाकी फ्रेमवर्क के साथ रेडिस कैश को कैसे कार्यान्वित करें?

  2. स्प्रिंग-डेटा-रेडिस रेडिस टेम्पलेट अपवाद

  3. Redis पब/सब विश्वसनीयता के साथ

  4. रेडिस आउट ऑफ मेमोरी एक्सेप्शन, लेकिन अभी भी बहुत मेमोरी है

  5. डॉकर का उपयोग करके रेडिस के साथ स्प्रिंग बूट वेब ऐप को कैसे कॉन्फ़िगर करें