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

कार्रवाई में रेडीसर्च

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

रेडीसर्च दर्ज करें! Redis मॉड्यूल के रूप में उपलब्ध, RediSearch लचीली खोज क्षमताएं प्रदान करता है, प्रथम श्रेणी के द्वितीयक अनुक्रमण इंजन के लिए धन्यवाद। यह पूर्ण-पाठ खोज, स्वतः पूर्णता, भौगोलिक अनुक्रमण, और बहुत कुछ जैसी शक्तिशाली सुविधाएँ प्रदान करता है।

RediSearch की शक्ति को प्रदर्शित करने के लिए, यह ब्लॉग पोस्ट RediSearch Go क्लाइंट का उपयोग करके निर्मित Go सेवा की सहायता से Redis के लिए Azure Cache के साथ RediSearch का उपयोग करने का एक व्यावहारिक उदाहरण प्रस्तुत करता है। यह आपको अनुप्रयोगों का एक सेट देने के लिए डिज़ाइन किया गया है जो आपको रीयल-टाइम में ट्वीट्स को अंतर्ग्रहण करने देता है और RediSearch का उपयोग करके उन्हें लचीले ढंग से क्वेरी करने देता है।

विशेष रूप से, आप सीखेंगे कि कैसे:

  • RediSearch अनुक्रमणिका के साथ कार्य करें 
  • विभिन्न RediSearch डेटा प्रकारों का उपयोग करें, जैसे TEXT, NUMERIC, TAG, और अन्य 
  • RediSearch क्षमताओं को दिखाने के लिए एप्लिकेशन कैसे बनाएं 
  • बस कुछ आदेशों के साथ सेवा घटकों को Azure में कैसे परिनियोजित करें 
  • RediSearch को क्वेरी करके ट्वीट डेटा का विश्लेषण करें 

एप्लिकेशन की खास जानकारी 

जैसा कि उल्लेख किया गया है, उदाहरण सेवा आपको वास्तविक समय में ट्वीट्स का उपभोग करने देती है और उन्हें RediSearch के माध्यम से पूछताछ के लिए उपलब्ध कराती है।

कार्रवाई में रेडीसर्च

इसके दो घटक हैं: 

  1. उपभोक्ता/सूचकांक: ट्विटर स्ट्रीमिंग एपीआई से पढ़ता है, इंडेक्स बनाता है, और आने पर लगातार ट्वीट डेटा (रेडिस हैश में) जोड़ता है।
  2. खोज सेवा: एक REST API जो आपको RediSearch क्वेरी सिंटैक्स का उपयोग करके ट्वीट खोजने की अनुमति देता है।

इस बिंदु पर, मैं इस बात पर विचार करने जा रहा हूं कि समाधान कैसे प्राप्त किया जाए और चलाया जाए ताकि आप इसे क्रिया में देख सकें। हालाँकि, यदि आप यह समझने में रुचि रखते हैं कि अलग-अलग घटक कैसे काम करते हैं, तो कृपया नीचे दिए गए कोड वॉक थ्रू सेक्शन और इस ब्लॉग के लिए GitHub रेपो देखें:https://github.com/abhirockzz/redisearch-tweet-analysis।

आवश्यकताएं

  1. शुरू करने के लिए, आपको एक MicrosoftAzure खाते की आवश्यकता होगी:यहां एक मुफ्त में प्राप्त करें!
  2. उपरोक्त सूचीबद्ध सेवा घटकों को मूल डॉकर सीएलआई कमांड का उपयोग करके एज़ूर कंटेनर इंस्टेंस पर तैनात किया जाएगा। यह क्षमता Docker और Azure के बीच एकीकरण द्वारा सक्षम की गई है।
  3. आपको विंडोज़, मैकोज़ के लिए डॉकर डेस्कटॉप संस्करण 2.3.0.5 या बाद के संस्करण की आवश्यकता होगी, या लिनक्स के लिए डॉकर एसीआई इंटीग्रेशन सीएलआई स्थापित करना होगा। ट्विटर स्ट्रीमिंग एपीआई का उपयोग करने के लिए, आपको एक ट्विटर डेवलपर खाते की भी आवश्यकता होगी। यदि आपके पास पहले से कोई नहीं है, तो कृपया इन निर्देशों का पालन करें। कार्रवाई में रेडीसर्च!

Azure पर Redis Enterprise टियर कैश सेट करने के लिए इस त्वरित-प्रारंभ ट्यूटोरियल का उपयोग करके प्रारंभ करें। एक बार जब आप सेट अप पूरा कर लें, तो सुनिश्चित करें कि आपके पास रेडिस होस्ट नाम और एक्सेस कुंजी आसान है:

कार्रवाई में रेडीसर्च

हमारी सेवा के दोनों घटक डॉकर कंटेनर के रूप में उपलब्ध हैं:ट्वीट इंडेक्सिंग सेवा और सर्च एपीआई सेवा। (यदि आपको अपनी खुद की डॉकर छवियां बनाने की आवश्यकता है, तो कृपया गिटहब रेपो पर उपलब्ध संबंधित डॉकरफाइल का उपयोग करें।)

अब आप देखेंगे कि इन्हें एज़्योर कंटेनर इंस्टेंस में तैनात करना कितना सुविधाजनक है, जो आपको एक प्रबंधित, सर्वर रहित एज़्योर वातावरण में डॉकर कंटेनरों को ऑन-डिमांड चलाने की अनुमति देता है।

Azure में परिनियोजित करें 

एक docker-compose.yml फ़ाइल अलग-अलग घटकों को परिभाषित करती है (ट्वीट-खोज और ट्वीट-इंडेक्सर ) आपको केवल अपने Azure Redis उदाहरण के साथ-साथ अपने Twitter डेवलपर खाता क्रेडेंशियल के मानों को बदलने के लिए इसे अपडेट करने की आवश्यकता है। यहां पूरी फाइल है: 

एक Azure प्रसंग बनाएँ: 

GitHub रेपो को क्लोन करें: 

दोनों सेवा घटकों को एक कंटेनर समूह के हिस्से के रूप में परिनियोजित करें: 

(ध्यान दें कि वर्तमान में ACI संदर्भ में उपलब्ध डॉकर कंपोज़ कमांड docker compose . से शुरू होते हैं . वह नहीं है docker-compose . के समान एक हाइफ़न के साथ। )

आपको इसके जैसा आउटपुट दिखाई देगा: 

सेवाओं के शुरू होने की प्रतीक्षा करें, आप Azure पोर्टल भी देख सकते हैं। एक बार दोनों सेवाओं के चालू और चलने के बाद, आप उनके संबंधित लॉग देख सकते हैं:

अगर सब कुछ ठीक रहा, तो ट्वीट-उपभोक्ता सेवा को बंद कर देना चाहिए था। यह ट्वीट्स की एक धारा को पढ़ेगा और उन्हें रेडिस तक बनाए रखेगा।

सत्य का क्षण!

ट्वीट डेटा को क्वेरी करने का समय आ गया है। ऐसा करने के लिए, आप एज़्योर कंटेनर इंस्टेंस में एक आईपी पते और पूरी तरह से योग्य डोमेन नाम (एफक्यूडीएन) के साथ आरईएसटी एपीआई तक पहुंच सकते हैं (कंटेनर एक्सेस में और पढ़ें)। IP खोजने के लिए, docker ps चलाएं और <चिह्न>पोर्ट्स की जांच करें आउटपुट में अनुभाग (जैसा कि नीचे दिखाया गया है):

अब आप सभी प्रकार के प्रश्नों को चला सकते हैं! इसमें गोता लगाने से पहले, अनुक्रमित विशेषताओं का एक त्वरित विचार यहां दिया गया है जिसका उपयोग आप अपनी खोज क्वेरी में कर सकते हैं:

(ध्यान दें, मैं नीचे दिए गए उदाहरणों में कर्ल का उपयोग करता हूं, लेकिन वीएस कोड के लिए "रेस्ट क्लाइंट" की अत्यधिक अनुशंसा करता हूं)

खोज सेवा API के लिए आधार URL सेट करें: 

सरल प्रारंभ करें और सभी दस्तावेज़ों को क्वेरी करें (* का उपयोग करके):

आपको इसके जैसा आउटपुट दिखाई देगा: 

शीर्षलेखों पर ध्यान दें पृष्ठ-आकार और सर्च-हिट :ये कस्टम हेडर एप्लिकेशन से पास किए जा रहे हैं, मुख्य रूप से पेजिनेशन और सीमाओं को प्रदर्शित करने के लिए। हमारे "मुझे सभी दस्तावेज़ प्राप्त करें" क्वेरी के जवाब में, हमें Redis में 12 परिणाम मिले, लेकिन JSON बॉडी ने 10 प्रविष्टियाँ लौटा दीं। यह RediSearch Go API के डिफ़ॉल्ट व्यवहार के कारण है, जिसे आप अलग-अलग क्वेरी पैरामीटर का उपयोग करके बदल सकते हैं, जैसे:

या, उदाहरण के लिए, iPhone से भेजे गए ट्वीट खोजें:

आप हमेशा क्वेरी परिणाम में सभी विशेषताओं को नहीं चाहते हैं। उदाहरण के लिए, यह है कि उपयोगकर्ता (ट्विटर स्क्रीन नाम) और ट्वीट टेक्स्ट को कैसे वापस लाया जाए:

उपयोगकर्ता नाम पर एक क्वेरी के बारे में कैसे (उदाहरण के लिए जो से शुरू):

आप क्वेरी में विशेषताओं के संयोजन का भी उपयोग कर सकते हैं:

हम विशिष्ट हैशटैग वाले ट्वीट्स के बारे में क्या सोचते हैं? एकाधिक हैशटैग (| से अलग) का उपयोग करना संभव है?

पता लगाना चाहते हैं कि biden . के साथ कितने ट्वीट किए गए हैं हैशटैग हाल ही में बनाया गया था? श्रेणी क्वेरी का उपयोग करें:

यदि आप ट्वीट पर कुछ निर्देशांक जानकारी प्राप्त करने के लिए भाग्यशाली थे, तो आप उन्हें निकालने का प्रयास कर सकते हैं और फिर निर्देशांक पर क्वेरी कर सकते हैं विशेषता:

ये तो कुछ उदाहरण भर हैं। बेझिझक आगे प्रयोग करें और अन्य प्रश्नों को आज़माएँ। RediSearch दस्तावेज़ में यह अनुभाग काम आ सकता है!

महत्वपूर्ण: समाप्त करने के बाद, Azure कंटेनर इंस्टेंस में सेवाओं और संबंधित कंटेनरों को रोकना न भूलें: 

आपके द्वारा बनाए गए Azure Redis इंस्टेंस को हटाने के लिए Azure पोर्टल का उपयोग करें।

कोड वॉकथ्रू

यह खंड अलग-अलग घटकों के लिए कोड का एक उच्च-स्तरीय अवलोकन प्रदान करता है। इससे GitHub रेपो में सोर्स कोड को नेविगेट करना आसान हो जाएगा।

ट्वीट्स उपभोक्ता/इंडेक्सर:

ट्विटर के साथ बातचीत करने के लिए गो-ट्विटर लाइब्रेरी का उपयोग किया गया है।

यह ट्विटर स्ट्रीमिंग एपीआई को प्रमाणित करता है:

और एक अलग गोरूटीन में ट्वीट्स की एक धारा सुनता है:

जाने पर ध्यान दें index.AddData(tweetToMap(tweet))— यह वह जगह है जहाँ अनुक्रमण घटक लागू किया जाता है। यह Redis के लिए Azure Cache से जुड़ता है:

यह फिर से बनाने से पहले इंडेक्स (और मौजूदा दस्तावेज़ भी) को छोड़ देता है:

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

प्रत्येक ट्वीट की जानकारी एक HASH . में संग्रहित की जाती है (नाम ट्वीट:<ट्वीट आईडी> ) HSET . का उपयोग करके संचालन: 

ट्वीट्स खोज एक REST API को उजागर करती है RediSearch को क्वेरी करने के लिए। सभी विकल्प (क्वेरी आदि सहित) क्वेरी पैरामीटर के रूप में पास किए जाते हैं। उदाहरण के लिए, https://localhost:8080/search?q=@source:iphone . यह आवश्यक क्वेरी पैरामीटर निकालता है:

<चिह्न>क्यू पैरामीटर अनिवार्य है। हालांकि, आप खोज के लिए निम्न पैरामीटर का भी उपयोग कर सकते हैं:

  • फ़ील्ड :यह निर्दिष्ट करने के लिए कि आप परिणाम में कौन-सी विशेषताएँ वापस करना चाहते हैं, और, 
  • offset_limit :यदि आप उस ऑफ़सेट को निर्दिष्ट करना चाहते हैं जहाँ से आप खोजना चाहते हैं और परिणाम में शामिल किए जाने वाले दस्तावेज़ों की संख्या (डिफ़ॉल्ट रूप से, ऑफ़सेट 0 है और सीमा 10 है - RediSearch Go क्लाइंट के अनुसार)।

उदाहरण के लिए:

अंत में, परिणामों को पुनरावृत्त किया जाता है और JSON (दस्तावेजों की सरणी) के रूप में वापस भेज दिया जाता है:

इस सेक्शन के लिए बस इतना ही!

Redis के लिए Azure Cache पर Redis Enterprise tiers

Redis Enterprise, Azure पर मूल सेवा के रूप में Redis के लिए Azure Cache के लिए दो नए स्तरों के रूप में उपलब्ध है, जो Microsoft और Redis द्वारा संचालित और समर्थित हैं। यह सेवा डेवलपर्स को रेडिस एंटरप्राइज सुविधाओं के एक समृद्ध सेट तक पहुंच प्रदान करती है, जिसमें रेडिसर्च जैसे मॉड्यूल शामिल हैं। अधिक जानकारी के लिए, ये संसाधन देखें: 

  • Redis के लिए Azure कैश, एंटरप्राइज़ टियर अब आम तौर पर उपलब्ध हैं
  • क्लाउड में रेडिस एंटरप्राइज को विकसित करने के लिए माइक्रोसॉफ्ट के साथ हमारी साझेदारी को गहरा करना 
  • Microsoft और Redis, Redis क्षमताओं के लिए डेवलपर्स को नया Azure Cache देने के लिए सहयोग करते हैं 
  • Redis के लिए Azure कैश पर Redis Enterprise सुविधाएं 

निष्कर्ष

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

समझना चाहते हैं कि जब आप रेडिस दस्तावेज़ीकरण पर किसी विषय की खोज करते हैं तो पर्दे के पीछे क्या होता है? RediSearch के साथ Redis साइट ने पूर्ण-पाठ खोज को कैसे शामिल किया, यह जानने के लिए इस ब्लॉग पोस्ट को देखें! या, शायद आप यह जानने में रुचि रखते हैं कि सर्वर रहित एप्लिकेशन में RediSearch का उपयोग कैसे करें?

यदि आप अभी भी आरंभ कर रहे हैं, तो RediSearch त्वरित प्रारंभ पृष्ठ पर जाएं।

यदि आप रेडिस के लिए Azure कैश में एंटरप्राइज़ क्षमताओं के बारे में अधिक जानना चाहते हैं, तो आप निम्न संसाधनों को देख सकते हैं: 

  • मल्टी ज़ोन रिडंडेंसी और इसे कैसे सेट अप करें 
  • नेटवर्क अलगाव के लिए निजी लिंक समर्थन 
  • सही कैशिंग स्तर चुनना 
  • एंटरप्राइज़ स्तरों के लिए उच्च उपलब्धता

  1. RediSearch 2.0 का परिचय

    RediSearch, Redis के लिए पूर्ण-पाठ खोज क्षमताओं के साथ एक रीयल-टाइम सेकेंडरी इंडेक्स, सबसे परिपक्व और सुविधा संपन्न Redis मॉड्यूल में से एक है। यह हर दिन और भी अधिक लोकप्रिय होता जा रहा है—पिछले कुछ महीनों में RediSearch Docker pulls में 500% की वृद्धि हुई है! उस बढ़ती लोकप्रियता ने ग्राहकों को रीयल

  1. RediSearch 2.0 ने अपना पहला मील का पत्थर मारा

    हमें RediSearch 2.0 के विकास में पहला मील का पत्थर जारी करने की घोषणा करते हुए खुशी हो रही है। RediSearch एक रीयल-टाइम खोज इंजन है जो आपको विविध प्रकार के जटिल प्रश्नों के उत्तर देने के लिए अपने Redis डेटा को क्वेरी करने देता है। यह मील का पत्थर, जिसे 2.0-एम01 कहा जाता है, डेटा के साथ इंडेक्स को स

  1. Windows 10 में क्रिया केंद्र सक्षम या अक्षम करें

    Windows में क्रिया केंद्र सक्षम या अक्षम करें 10:  जैसा कि आप जानते हैं कि विंडोज 10 में एक्शन सेंटर आपको ऐप नोटिफिकेशन और विभिन्न सेटिंग्स तक त्वरित पहुंच में मदद करने के लिए है, लेकिन यह जरूरी नहीं है कि सभी उपयोगकर्ता इसे पसंद करें या वास्तव में इसका इस्तेमाल करें, इसलिए बहुत सारे उपयोगकर्ता केवल