Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

रेडिस पब/सब एक्सप्लेन्ड:पब्लिश/सब्सक्राइब मैसेजिंग के साथ स्केलेबिलिटी को बढ़ावा दें

रेडिस पब/सब एक्सप्लेन्ड:पब्लिश/सब्सक्राइब मैसेजिंग के साथ स्केलेबिलिटी को बढ़ावा दें <पी> जब आप किसी ऐसे एप्लिकेशन पर काम कर रहे हैं जिसे आसानी से रखरखाव योग्य, स्केलेबल और प्रदर्शन करने योग्य होना चाहिए, तो प्रकाशित/सदस्यता लें मैसेजिंग पैटर्न एक अच्छा विकल्प है।

<पी> इसके पीछे का विचार सरल, लेकिन शक्तिशाली है। हमारे पास प्रेषक हैं जिन्हें प्रकाशक कहा जाता है उनकी एकमात्र भूमिका भेजना या प्रकाशित करना है संदेश. उन्हें इसकी परवाह नहीं होती कि उन्हें कौन प्राप्त करेगा या कोई उन्हें प्राप्त करेगा भी या नहीं। वे बस गोली चलाते हैं और संदेश भूल जाते हैं। और वे ऐसा चैनलों के माध्यम से करते हैं .

<पी> उदाहरण के लिए, इन्हें टीवी चैनलों के रूप में सोचें। हमारे पास खेल चैनल, मौसम पूर्वानुमान चैनल, कुकिंग चैनल इत्यादि हैं। प्रत्येक प्रकाशक अपने संदेश एक निश्चित चैनल को भेजता है, और जिसने भी सब्सक्राइब किया है क्योंकि यह चैनल इन संदेशों को प्राप्त करने में सक्षम होगा।

<पी> यहीं पर ग्राहक हैं खेल में आओ. वे एक या अधिक चैनलों की सदस्यता ले सकते हैं और वहां प्रसारित संदेशों को प्राप्त करना शुरू कर सकते हैं।

<पी> जैसा कि हमने पहले ही बताया, संदेश भेजा जाना चाहिए और भूल जाना चाहिए। इसका मतलब यह है कि यदि कोई ग्राहक किसी निश्चित चैनल की सदस्यता लेता है, तो उस चैनल में पहले भेजे गए सभी संदेश इस ग्राहक के लिए उपलब्ध नहीं होंगे।

<पी> इस प्रकार की वास्तुकला की प्रकृति के कारण, हम आसानी से विभिन्न घटकों के बीच कम युग्मन प्राप्त कर सकते हैं और मजबूत और आसानी से बनाए रखने वाले अनुप्रयोगों के निर्माण के लिए एक ठोस आधार प्रदान कर सकते हैं।

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

रेडिस क्या है?

<पी> रेडिस के पीछे प्रारंभिक विचार अपने पूर्वज मेम्केच्ड के विकल्प के रूप में इन-मेमोरी कैश समाधान के रूप में काम करना था।

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

<पी> रेडिस पब/सब एक्सप्लेन्ड:पब्लिश/सब्सक्राइब मैसेजिंग के साथ स्केलेबिलिटी को बढ़ावा दें

<पी> रेडिस प्रदर्शन तुलना (स्रोत:गूगल) <पी> रेडिस का उपयोग करते समय सबसे बड़े लाभों में से एक विशाल समुदाय और तकनीकी संसाधन हैं जो आप ऑनलाइन पा सकते हैं। इनमें से बहुत सारे संसाधन मुफ़्त हैं, और ऐसे ऑनलाइन प्लेटफ़ॉर्म भी हैं जिनमें मुफ़्त स्तर की पेशकशें हैं।

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

<पी> रेडिस पब/सब एक्सप्लेन्ड:पब्लिश/सब्सक्राइब मैसेजिंग के साथ स्केलेबिलिटी को बढ़ावा दें

<पी> रेडिस एंटरप्राइज क्लाउड साइन अप / साइन इन पेज

पब/सब क्या है?

<पी> रेडिस में चैनल प्रकाशित/सब्सक्राइब करना उन सुविधाओं में से एक है जिसका मैंने ऊपर उल्लेख नहीं किया है लेकिन यह रेडिस के अंतिम संस्करणों में शामिल है। यह उनका पब/सब मैसेजिंग पैटर्न का कार्यान्वयन है, जहां हमारे पास प्रकाशक और ग्राहक हैं जो चैनलों के माध्यम से संदेशों का आदान-प्रदान करते हैं।

<पी> हम नीचे संक्षेप में इसके बारे में जानेंगे और फिर इसे मेरे द्वारा आपके लिए तैयार किए गए एक छोटे डेमो ऐप में अभ्यास में देखेंगे।

रेडिस पब/सब कैसे काम करता है?

<पी> हमारे पास प्रकाशक (संदेशों के निर्माता), चैनल (जिनके माध्यम से संदेश जा रहे हैं), और ग्राहक (संदेशों के प्राप्तकर्ता) हैं। किसे क्या मिलता है यह पूरी तरह से इस बात पर निर्भर करता है कि किसने किस चैनल की सदस्यता ली है।

<पी> आइए एक उदाहरण में देखें कि यह कैसे काम करता है: <पी> यदि हमने तीन प्रकाशक बनाए हैं जो तीन अलग-अलग चैनलों पर संदेश प्रकाशित करेंगे। आइए उन्हें चैनल 1, 2 और 3 कहें। हमारे पास तीन ग्राहक भी हैं, आइए उन्हें ग्राहक ए, बी और सी कहें।

<पी> अब, आइए कल्पना करें कि ग्राहक A तीनों चैनलों पर संदेश सुन रहा है, यानी उसने उनकी सदस्यता ले ली है। और सब्सक्राइबर बी और सी चैनल 2 और 3 के सब्सक्राइबर हैं। इसका मतलब यह है कि जब तीन प्रकाशकों में से कोई एक संदेश भेजता है, तो सब्सक्राइबर ए इसे प्राप्त करेगा। और सब्सक्राइबर बी और सी को केवल प्रकाशक 2 और 3 द्वारा भेजे गए संदेश प्राप्त होंगे, क्योंकि वे केवल इन चैनलों (2 और 3) पर संदेश सुन रहे हैं।

<पी> ध्यान दें कि हमारे पास एक चैनल का उपयोग करने वाली दो इकाइयाँ हैं - एक भेज रही है, दूसरी प्राप्त कर रही है - लेकिन वे पूरी तरह से स्वतंत्र हैं। और भेजे जा रहे संदेश कायम नहीं रहते. एक बार जब वे प्रकाशक द्वारा भेज दिए जाते हैं तो उन्हें भुला दिया जाता है। केवल वही संस्थाएँ जो भेजने के समय सदस्यता ले चुकी हैं, उन्हें प्राप्त होंगी।

रेडिस में पब/सब का उपयोग कैसे करें

<पी> ढेर सारी क्लाइंट लाइब्रेरीज़ हैं जिनका उपयोग आप Redis के साथ कर सकते हैं। एक समर्पित पेज है जहां हर कोई जा सकता है और विशिष्ट प्रोजेक्ट आवश्यकताओं या आपकी पसंदीदा प्रोग्रामिंग भाषा के आधार पर एक चुन सकता है।

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

<पी> नीचे दिए गए हमारे डेमो के लिए, मैंने ioredis का उपयोग किया, जो Node.js के लिए एक पूर्ण विशेषताओं वाला Redis क्लाइंट है। मैंने इसे इसलिए चुना क्योंकि डेमो ऐप यूआई रिएक्ट और नोड.जेएस के साथ बनाया गया है और मेरा सर्वर कोड इसके साथ बहुत अच्छी तरह से मेल खाता है।

रेडिस पब/सब डेमो

<पी> रेडिस पब/सब एक्सप्लेन्ड:पब्लिश/सब्सक्राइब मैसेजिंग के साथ स्केलेबिलिटी को बढ़ावा दें

<पी> रेडिस पब/सब विज़ुअलाइज़र ऐप <पी> समय दिखाएँ!

<पी> डेमो एप्लिकेशन के पीछे का विचार यह दिखाना है कि पैटर्न कैसे काम करता है।

<पी> जब आप इसे पहली बार खोलेंगे तो आपको तीन काल्पनिक टीवी चैनलों में सरल संदेश (समाचार) प्रकाशित करने के लिए तीन बटन दिखाई देंगे:मौसम, खेल और संगीत।

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

<पी> एक बार जब कोई ग्राहक किसी चैनल पर हस्ताक्षरित हो जाता है और आप इस चैनल के आइकन या प्रकाशित बटन पर क्लिक करते हैं, तो आपको कार्ड के सामने की ओर एक नमूना समाचार दिखाई देगा।

<पी> विभिन्न प्रकाशकों/ग्राहकों के संयोजन के साथ खेलें और परिणाम देखें।

<पी> मुझे आशा है कि इससे आपको उपरोक्त उदाहरण में मैंने जो समझाया है उसकी बेहतर समझ मिलेगी।

डेमो ऐप को स्थानीय स्तर पर कैसे चलाएं

<पी> डेमो एप्लिकेशन को स्थानीय रूप से स्थापित करने और चलाने के लिए, नीचे दिए गए चरणों का पालन करें (सभी कमांड को रूट प्रोजेक्ट निर्देशिका से चलाया जाना माना जाता है):

<पी> फ्रंटएंड चलाएँ: <पी> cd client yarn && yarn dev <पी> बैकएंड चलाएँ: <पी> cd server && yarn yarn start <पी> और अंत में, इसे चलाने के लिए डॉकर के अपने स्थानीय इंस्टॉलेशन का उपयोग करें (यदि आपके पास एक नहीं है, तो आप इसे यहां से प्राप्त कर सकते हैं):

docker run -p 6379:6379 redislabs/redismod:preview
<पी> यह शायद स्थानीय स्तर पर रेडिस की चालू प्रति रखने का सबसे आसान तरीका है। दूसरा विकल्प सीधे रेडिस क्लाउड का उपयोग करना और एप्लिकेशन को ऑनलाइन तैनात करना होगा। यह एक विकल्प है जिसकी मैं अभी भी जांच कर रहा हूं और अगर मैं ऐसा करने में कामयाब रहा, तो मैं पूरा ऐप तैनात करूंगा और आपको बता दूंगा।

बंद हो रहा है

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

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

<पी> उदाहरण के लिए, एक विशिष्ट क्षेत्र में ट्रैफ़िक दर्शाने वाली प्रणाली की कल्पना करें। इस प्रकार का सॉफ़्टवेयर पब/उप के लाभों का लाभ उठाने के लिए एक आदर्श उम्मीदवार है। और कई मामलों में यह Redis का उपयोग करके हासिल किया जाता है।

<पी> किसी भी मामले में, डेवलपर्स और इंजीनियरों के रूप में, हमें हमेशा उस प्रोजेक्ट की विशिष्ट आवश्यकताओं द्वारा निर्देशित होना चाहिए जिस पर हम काम कर रहे हैं। जब भी हम कोई नया पैटर्न या तकनीक पेश करने का निर्णय लेते हैं, तो हमें इसे सावधानीपूर्वक करना चाहिए और गंभीर शोध के साथ इसका समर्थन करना चाहिए।

<पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. डेटाबेस में तालिकाओं की संख्या प्रदर्शित करने के लिए MySQL क्वेरी क्या है? डेटाबेस में तालिकाओं की संख्या प्रदर्शित करने के लिए MySQL क्वेरी क्या है?

    मान लें, मैं यहां वेब डेटाबेस का उपयोग कर रहा हूं। हमें डेटाबेस वेब में तालिकाओं की संख्या ज्ञात करने की आवश्यकता है। इसके लिए MySQL में INFORMATION_SCHEMA.TABLES का उपयोग करें। तालिकाओं की संख्या प्रदर्शित करने के लिए क्वेरी निम्नलिखित है - जहां table_schema=web; यह निम्नलिखित आउटपुट देगा - +---

  1. pyDash:वेब-आधारित लिनक्स प्रदर्शन निगरानी उपकरण pyDash:वेब-आधारित लिनक्स प्रदर्शन निगरानी उपकरण

    पाइडैश लिनक्स के लिए पायथन में लिखा गया एक हल्का वेब-आधारित निगरानी उपकरण है और Django प्लस Chart.js . इसका परीक्षण किया गया है और यह निम्नलिखित मुख्यधारा के लिनक्स वितरणों पर चल सकता है:सेंटओएस, फेडोरा, उबंटू, डेबियन, आर्क लिनक्स, रास्पबियन और साथ ही पिडोरा। आप इसका उपयोग अपने लिनक्स पीसी/सर्वर सं

  1. Matplotlib में पांडस डेटाफ्रेम प्लॉट की डीपीआई कैसे बदलें? Matplotlib में पांडस डेटाफ्रेम प्लॉट की डीपीआई कैसे बदलें?

    पंडों के डेटाफ़्रेम प्लॉट के DPI को बदलने के लिए, हम rcParams का उपयोग कर सकते हैं डॉट प्रति इंच सेट करने के लिए। कदम आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। DPI मानों को .rcParams[figure.dpi] =120 में सेट करें एक प्लॉट बनाने के लिए एक पांडा डेटाफ़्रेम बनाएं। डेटाफ़