Redis, रिमोट डिक्शनरी सर्वर के लिए संक्षिप्त, एक बीएसडी-लाइसेंस प्राप्त, ओपन-सोर्स इन-मेमोरी की-वैल्यू डेटा स्ट्रक्चर स्टोर है, जिसे सल्वाटोर सैनफिलिपो द्वारा सी भाषा में लिखा गया था और इसे पहली बार 10 मई, 2009 को जारी किया गया था। यह कैसे कॉन्फ़िगर किया गया है, इसके आधार पर , Redis डेटाबेस, कैशे या संदेश ब्रोकर की तरह कार्य कर सकता है। यह ध्यान रखना महत्वपूर्ण है कि Redis एक NoSQL डेटाबेस सिस्टम है। इसका तात्पर्य यह है कि SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) संचालित डेटाबेस सिस्टम जैसे MySQL, PostgreSQL और Oracle के विपरीत, Redis डेटा को अच्छी तरह से परिभाषित डेटाबेस स्कीमा में संग्रहीत नहीं करता है जो तालिकाओं, पंक्तियों और स्तंभों का गठन करता है। इसके बजाय, Redis डेटा को डेटा संरचनाओं में संग्रहीत करता है जो इसे उपयोग करने के लिए बहुत लचीला बनाता है। रेडिस™* के लिए स्केलग्रिड की होस्टिंग आपको विभिन्न प्रकार के रेडिस उपयोग मामलों के लिए अपने समय लेने वाले कार्यों को स्वचालित करने की अनुमति देती है। इस ब्लॉग में, हम विभिन्न कोर डेटा संरचना प्रकारों द्वारा शीर्ष रेडिस उपयोग के मामलों की रूपरेखा तैयार करते हैं।
Redis में डेटा संरचनाएं
आइए कुछ ऐसे डेटा प्रकारों पर एक नज़र डालते हैं जिनका Redis समर्थन करता है। रेडिस में, हमारे पास स्ट्रिंग्स, सूचियां, सेट, सॉर्ट किए गए सेट और हैश हैं, जिन्हें हम इस लेख में शामिल करने जा रहे हैं। इसके अतिरिक्त, हमारे पास अन्य डेटा प्रकार हैं जैसे कि बिटमैप्स, हाइपरलॉग्स और त्रिज्या प्रश्नों और धाराओं के साथ भू-स्थानिक अनुक्रमणिका। जबकि रेडिस समुदाय द्वारा लिखे गए कुछ रेडिस जीयूआई उपकरण हैं, कमांड लाइन अब तक का सबसे महत्वपूर्ण क्लाइंट है, लोकप्रिय एसक्यूएल डेटाबेस उपयोगकर्ताओं के विपरीत, जो अक्सर जीयूआई प्रबंधन प्रणाली पसंद करते हैं, उदाहरण के लिए, MySQL के लिए phpMyAdmin और PostgreSQL के लिए PgAdmin।
आइए हम Redis में मौजूद डेटा प्रकारों पर करीब से नज़र डालें।
Redis Strings
Redis Strings अन्य सभी डेटा संरचना प्रकारों द्वारा लीवरेज किए गए Redis मान का सबसे बुनियादी प्रकार है, और जावा या पायथन जैसी अन्य प्रोग्रामिंग भाषाओं में स्ट्रिंग्स के समान है। स्ट्रिंग्स, जिसमें कोई भी डेटा प्रकार हो सकता है, को बाइनरी सुरक्षित माना जाता है और इसकी अधिकतम लंबाई 512MB है। यहाँ Redis स्ट्रिंग्स के लिए कुछ उपयोगी कमांड दिए गए हैं:
एक स्ट्रिंग स्टोर करने के लिए 'जॉन 'विद्यार्थी' . जैसी कुंजी के अंतर्गत रेडिस में, कमांड चलाएँ:
SET “student” “john”
स्ट्रिंग को पुनः प्राप्त करने के लिए, GET कमांड का उपयोग करें जैसा कि दिखाया गया है:
"विद्यार्थी" प्राप्त करें
कुंजी में निहित स्ट्रिंग को हटाने के लिए DEL कमांड का उपयोग करें:
DEL "student"
Redis Strings Use Cases
- सत्र संचय: कई वेबसाइटें HTML अंशों या पृष्ठों को कैशिंग करके अपने वेबसाइट अनुभव को तेज करने के लिए सत्र कैश बनाने के लिए Redis Strings का लाभ उठाती हैं। चूंकि डेटा अस्थायी रूप से रैम में संग्रहीत होता है, इसलिए यह विशेषता रेडिस को सत्र कैश के रूप में एक आदर्श विकल्प बनाती है। यह अस्थायी रूप से उपयोगकर्ता-विशिष्ट डेटा को स्टोर करने में सक्षम है, उदाहरण के लिए, ऑनलाइन स्टोर में शॉपिंग कार्ट में संग्रहीत आइटम, जो इस लिए महत्वपूर्ण है कि आपके उपयोगकर्ता लॉग आउट होने या कनेक्शन खोने की स्थिति में अपना डेटा नहीं खोते हैं।
- कतार: ट्रैफिक भीड़भाड़, मैसेजिंग, डेटा एकत्र करने, नौकरी प्रबंधन, या पैकर रूटिंग से संबंधित किसी भी एप्लिकेशन को रेडिस कतार पर विचार करना चाहिए, क्योंकि यह संसाधन वितरण के लिए आगमन और प्रस्थान की दर से आपकी कतार के आकार को प्रबंधित करने में आपकी सहायता कर सकता है।
- उपयोग और मीटर्ड बिलिंग: रेडिस स्ट्रिंग्स के लिए एक कम ज्ञात उपयोग मामला खपत-आधारित मूल्य निर्धारण मॉडल के लिए वास्तविक समय की पैमाइश है। यह SaaS प्लेटफॉर्म को अपने ग्राहकों की गतिविधि को मापने के लिए वास्तविक उपयोग के आधार पर बिल देने की अनुमति देता है, जैसे कि दूरसंचार उद्योग में जहां वे टेक्स्ट संदेशों या मिनटों के लिए शुल्क ले सकते हैं।
Redis सूचियां
सूचियों में ऐसे तार होते हैं जो उनके सम्मिलन क्रम के अनुसार क्रमबद्ध होते हैं। रेडिस सूचियों के साथ, आप सूची के शीर्ष या पूंछ में आइटम जोड़ सकते हैं, जो कतारबद्ध नौकरियों के लिए बहुत उपयोगी है। यदि अधिक आवश्यक कार्य हैं जिन्हें आपको निष्पादित करने की आवश्यकता है, तो उन्हें कतार में अन्य निम्न प्राथमिकता वाली नौकरियों के सामने धकेला जा सकता है। हम सिर पर या स्ट्रिंग के बाईं ओर एक तत्व डालने के लिए LPUSH कमांड का उपयोग करेंगे, और RPUSH कमांड को हमारे स्ट्रिंग के टेल या दाईं ओर सम्मिलित करने के लिए उपयोग करेंगे। आइए एक उदाहरण देखें:
LPUSH सूची x # अब सूची "x" है
LPUSH सूची y # अब सूची "y","x" है
RPUSH list z # अब सूची "y",,"x","z" है (ध्यान दें कि RPUSH कमांड द्वारा सूची के अंत में 'z' तत्व कैसे जोड़ा गया था)
Redis List Use Cases
- सोशल नेटवर्किंग साइट्स: ट्विटर जैसे सोशल प्लेटफॉर्म रेडिस लिस्ट का इस्तेमाल अपनी टाइमलाइन या होमपेज फीड को पॉप्युलेट करने के लिए करते हैं, और ट्रेंडिंग ट्वीट्स या स्टोरीज के साथ अपने फीड के टॉप को कस्टमाइज कर सकते हैं।
- RSS Feeds: कस्टम स्रोतों से समाचार फ़ीड बनाएं जहां आप नवीनतम अपडेट प्राप्त कर सकते हैं और इच्छुक अनुयायियों को अपने आरएसएस फ़ीड की सदस्यता लेने की अनुमति दे सकते हैं।
- लीडरबोर्ड: रेडिट और अन्य वोटिंग प्लेटफॉर्म जैसे फ़ोरम लीडरबोर्ड में लेख जोड़ने के लिए रेडिस लिस्ट का लाभ उठाते हैं और सबसे अधिक वोट की गई प्रविष्टियों के आधार पर छाँटते हैं।
Node.js, Redis और Socket.io ब्लॉग पोस्ट का उपयोग करके हमारे कैशिंग ट्वीट्स में अपना स्वयं का Twitter फ़ीड बनाने का तरीका जानें।
शीर्ष #Redis कोर डेटा संरचना प्रकार द्वारा मामलों का उपयोग करेंट्वीट करने के लिए क्लिक करेंRedis Sets
Redis Sets शक्तिशाली डेटा प्रकार हैं जो चौराहों और यूनियनों जैसे शक्तिशाली संचालन का समर्थन करते हैं। वे किसी भी क्रम में नहीं हैं और आमतौर पर इसका उपयोग तब किया जाता है जब आप एक ऑडिट करना चाहते हैं और विभिन्न चर के बीच संबंध देखना चाहते हैं। सेट यथोचित रूप से तेज़ हैं, और आपके द्वारा संग्रहीत किए गए तत्वों की संख्या की परवाह किए बिना, सेट में आइटम जोड़ने या निकालने में समान समय लगेगा। इसके अलावा, सेट डुप्लिकेट कुंजियों या डुप्लिकेट सदस्यों की अनुमति नहीं देते हैं, इसलिए एक सेट में कई बार जोड़ी गई कुंजी को केवल अनदेखा कर दिया जाएगा। यह SADD नामक एक फ़ंक्शन द्वारा संचालित होता है जो कई समान प्रविष्टियों के दोहराव से बचाता है। SADD विशेषता को अद्वितीय मानों की जाँच करते समय नियोजित किया जा सकता है, और पृष्ठभूमि में चलने वाली नौकरियों को शेड्यूल करने के लिए भी किया जा सकता है, जिसमें क्रॉन जॉब्स भी शामिल हैं जो स्वचालित स्क्रिप्ट हैं।
ये आपकी ऑनलाइन शॉपिंग साइट के लिए रीयल-टाइम ग्राहक व्यवहार का विश्लेषण करने के लिए विशेष रूप से सहायक हैं। उदाहरण के लिए, यदि आप एक ऑनलाइन कपड़ों की दुकान चला रहे हैं, तो Redis Sorted Sets ग्राहक व्यवहार की सटीक तस्वीर देने के लिए संबंध मिलान तकनीक जैसे कि यूनियनों, चौराहों और घटावों (आमतौर पर वेन आरेखों में लागू) का उपयोग करते हैं। आप लिंग के बीच खरीदारी पैटर्न पर डेटा पुनर्प्राप्त कर सकते हैं, कौन से कपड़े उत्पाद सबसे अधिक बेचते हैं, और कौन से घंटे उच्चतम बिक्री रिकॉर्ड करते हैं।
Redis सेट यूज़ केस
- ईकॉमर्स बिक्री का विश्लेषण करना: कई ऑनलाइन स्टोर ग्राहक व्यवहार का विश्लेषण करने के लिए Redis Sets का उपयोग करते हैं, जैसे किसी विशिष्ट उत्पाद श्रेणी या उपश्रेणी के लिए खोज या खरीदारी। उदाहरण के लिए, एक ऑनलाइन किताबों की दुकान का मालिक यह पता लगा सकता है कि मनोविज्ञान में कितने ग्राहकों ने मेडिकल किताबें खरीदीं।
- आईपी एड्रेस ट्रैकिंग: Redis Sets उन डेवलपर्स के लिए एक बेहतरीन टूल है जो किसी विशिष्ट वेबसाइट पेज या ब्लॉग पोस्ट पर जाने वाले सभी IP पतों का विश्लेषण करना चाहते हैं, और अपने SADD फ़ंक्शन के साथ अद्वितीय विज़िटर के सभी डुप्लिकेट को अनदेखा करने में सक्षम होना चाहते हैं।
- अनुचित सामग्री फ़िल्टरिंग: उपयोगकर्ता इनपुट एकत्र करने वाले किसी भी ऐप के लिए, अनुचित शब्दों के लिए सामग्री फ़िल्टरिंग को लागू करना एक अच्छा विचार है, और आप इसे SET कुंजी और SADD कमांड में उन शब्दों को जोड़कर Redis सेट के साथ कर सकते हैं जिन्हें आप फ़िल्टर करना चाहते हैं।
सॉर्ट किए गए सेट
जैसा कि नाम से पता चलता है, Redis Sorted Sets स्ट्रिंग्स का एक संग्रह है जो आपके तत्वों को एक आदेश प्रदान करता है, और Redis में सबसे उन्नत डेटा संरचनाओं में से एक है। ये रेडिस सेट के समान हैं, केवल यह कि सेट का कोई क्रम नहीं है जबकि सॉर्ट किए गए सेट प्रत्येक सदस्य को स्कोर के साथ जोड़ते हैं। सॉर्ट किए गए सेट बहुत तेज़ होने के लिए जाने जाते हैं, क्योंकि आप कम से कम समय में ऑर्डर की गई सूचियों और एक्सेस तत्वों को वापस कर सकते हैं।
Redis Sorted Sets Use Cases
- प्रश्न एवं उत्तर प्लेटफार्म: स्टैक ओवरफ्लो और क्वोरा जैसे कई प्रश्नोत्तर प्लेटफॉर्म प्रत्येक प्रस्तावित प्रश्न के लिए उच्चतम वोट वाले उत्तरों को रैंक करने के लिए रेडिस सॉर्टेड सेट का उपयोग करते हैं ताकि यह सुनिश्चित हो सके कि सर्वोत्तम गुणवत्ता सामग्री पृष्ठ के शीर्ष पर सूचीबद्ध है।
- गेमिंग ऐप स्कोरबोर्ड: ऑनलाइन गेमिंग ऐप्स अपनी उच्च स्कोर सूचियों को बनाए रखने के लिए रेडिस सॉर्ट किए गए सेट का लाभ उठाते हैं, क्योंकि स्कोर दोहराया जा सकता है, लेकिन विशिष्ट उपयोगकर्ता विवरण वाले स्ट्रिंग नहीं कर सकते हैं।
- कार्य निर्धारण सेवा: कार्य शेड्यूलिंग सेवा के लिए Redis सॉर्ट किए गए सेट एक बेहतरीन टूल हैं, क्योंकि आप अपनी कतार में किसी कार्य की प्राथमिकता को रैंक करने के लिए स्कोर को संबद्ध कर सकते हैं। ऐसे किसी भी कार्य के लिए जिसमें कोई अंक नोट नहीं किया गया है, आप WEIGHTS विकल्प का उपयोग डिफ़ॉल्ट रूप से 1 के लिए कर सकते हैं।
- जियो हैशिंग: रेडिस जियो इंडेक्सिंग एपीआई जियो हैश तकनीक के लिए एक सॉर्ट किए गए सेट का उपयोग करता है जो आपको अक्षांश और देशांतर के आधार पर स्थानों को अनुक्रमित करने की अनुमति देता है, बहुआयामी डेटा को रैखिक डेटा में बदल देता है।
Redis Hashes
Redis Hashes स्ट्रिंग फ़ील्ड और स्ट्रिंग मानों के बीच के मानचित्र हैं। यह गो-टू डेटा प्रकार है यदि आपको वस्तुओं का प्रतिनिधित्व करने के लिए अनिवार्य रूप से अद्वितीय फ़ील्ड और उनके मूल्यों का एक कंटेनर बनाने की आवश्यकता है। हैश आपको बहुत कम जगह लेते हुए 232 - 1 फ़ील्ड-वैल्यू जोड़े (4 बिलियन से अधिक) तक, अच्छी मात्रा में फ़ील्ड संग्रहीत करने की अनुमति देता है। जब भी संभव हो, आपको रेडिस हैश का उपयोग करना चाहिए, क्योंकि आप लाखों वस्तुओं को संग्रहीत करने के लिए एक छोटे रेडिस उदाहरण का उपयोग कर सकते हैं। आप कई उन्नत संचालन के अलावा बुनियादी हैश कमांड संचालन, जैसे प्राप्त, सेट, मौजूद, का उपयोग कर सकते हैं।
Redis Hashes Use Cases
- उपयोगकर्ता प्रोफाइल: कई वेब एप्लिकेशन अपने उपयोगकर्ता प्रोफाइल के लिए रेडिस हैश का उपयोग करते हैं, क्योंकि वे सभी उपयोगकर्ता क्षेत्रों, जैसे नाम, उपनाम, ईमेल, पासवर्ड, आदि के लिए एकल हैश का उपयोग कर सकते हैं।
- उपयोगकर्ता पोस्ट: इंस्टाग्राम जैसे सोशल प्लेटफॉर्म रेडिस हैश का उपयोग सभी संग्रहीत उपयोगकर्ता फ़ोटो या पोस्ट को एक ही उपयोगकर्ता को वापस मैप करने के लिए करते हैं। हैशिंग तंत्र उन्हें बहुत तेज़ी से मूल्यों को देखने और वापस करने की अनुमति देता है, डेटा को मेमोरी में फिट करता है, और उनके सर्वरों में से एक के मरने की स्थिति में डेटा दृढ़ता का लाभ उठाता है।
- मल्टी-टेनेंट मेट्रिक को स्टोर करना: मल्टी-टेनेंट एप्लिकेशन अपने उत्पाद और बिक्री मेट्रिक्स को रिकॉर्ड और स्टोर करने के लिए रेडिस हैश का लाभ उठा सकते हैं जो प्रत्येक किरायेदार के बीच ठोस अलगाव की गारंटी देता है, क्योंकि हैश को बहुत कम मेमोरी स्पेस में कुशलता से एन्कोड किया जा सकता है।
Redis का उपयोग कौन करता है?
Redis ने यात्रा और आतिथ्य, सामुदायिक मंचों, सोशल मीडिया, SaaS और ईकॉमर्स उद्योगों में कुछ ही नामों के लिए एक बड़ा बाजार हिस्सा पाया है। रेडिस का उपयोग करने वाली कुछ प्रमुख कंपनियों में Pinterest, उबेर, स्लैक, एयरबीएनबी, ट्विटर और स्टैक ओवरफ्लो शामिल हैं। आज रेडिस की लोकप्रियता के कुछ आंकड़े यहां दिए गए हैं:
- 4,107 कंपनियों ने स्टैकशेयर पर रेडिस का उपयोग करने की सूचना दी
- 8,759 डेवलपर्स ने स्टैकशेयर पर रेडिस का उपयोग करते हुए कहा
- 38,094 GitHub उपयोगकर्ताओं ने Redis को तारांकित किया है
- #8 डेटाबेस को DB-इंजन पर 144.08 के स्कोर के साथ रैंक किया गया