.NET और Redis के लिए एक धाराप्रवाह API और ऑब्जेक्ट मॉडल
रेडिस एक अद्भुत तकनीक है जिसे लाखों डेवलपर्स दो कारणों से पसंद करते हैं:गति और सरलता। रेडिस डेटा संरचनाओं में तार्किक रूप से व्यवस्थित एक सहज देशी इंटरफ़ेस प्रदान करता है जिसे प्रोग्रामर पहले से जानते हैं। इसके अलावा, उन संरचनाओं का उपयोग करना आसान है और भयानक रूप से अनुकूलित हैं। यह गति और सरलता का यह अंतिम मिश्रण है जिसे हम .NET, Redis OM के लिए एक नई क्लाइंट लाइब्रेरी के विमोचन के साथ जोड़ रहे हैं।
Redis OM .NET क्या है?
रेडिस ओएम रेडिस के लिए ऑब्जेक्ट मैपिंग और बहुत कुछ है। रेडिस ओएम के पीछे की प्रेरणा इस सवाल का जवाब देना है कि "डेवलपर्स सभी रेडिस कमांड को सीखे बिना रेडिस से अद्भुत उत्तोलन कैसे प्राप्त कर सकते हैं?" इस पहली पूर्वावलोकन रिलीज़ के लिए, हम इस प्रश्न का समाधान तलाश रहे हैं, "हम रेडिस में अपने डोमेन ऑब्जेक्ट को कैसे स्टोर और ढूंढ सकते हैं?" Redis OM .NET का पूर्वावलोकन रिलीज़ एक ऑब्जेक्ट मैपर, एक सेकेंडरी इंडेक्स बिल्डर और एक सरल और शक्तिशाली क्वेरी बिल्डर है। यह सब Redis के साथ आपके डोमेन ऑब्जेक्ट को स्टोर करने और खोजने में आपकी मदद करने के लिए तैयार किया गया है।
Redis मॉड्यूल
मॉड्यूल एपीआई रेडिस के लिए एक गेम चेंजर रहा है। रेडिस के लिए कुछ आवश्यक सुविधाएँ प्रदान करते हुए मॉड्यूल प्लेटफ़ॉर्म में बहुत अधिक लचीलापन जोड़ते हैं। RedisJSON, विशेष रूप से, बड़ी मात्रा में कार्यक्षमता को अनलॉक करता है, विशेष रूप से द्वितीयक अनुक्रमण और दस्तावेज़ मॉडलिंग के आसपास। जबकि रेडिस ओएम कोर रेडिस के साथ अच्छी तरह से काम करता है, रेडिस ओएम वास्तव में रेडिसजसन को जोड़ते समय अपनी प्रगति को हिट करता है, मॉडलिंग ऑब्जेक्ट्स के लिए एक समृद्ध और शक्तिशाली एपीआई बनाने और रेडिस में उन्हें क्वेरी करने के लिए रेडिसजसन का पूरा फायदा उठाता है।
क्षमताएं
Redis OM .NET के पूर्वावलोकन संस्करण में चार प्राथमिक क्षमताएं हैं:
- ऑब्जेक्ट मॉडलिंग
- सूचकांक निर्माण
- धाराप्रवाह क्वेरी
- धाराप्रवाह एकत्रीकरण
यह कैसे काम करता है
रेडिस ओएम के साथ उठने और चलने से पहले, आपको अपने प्रोजेक्ट में पैकेज को स्थापित करना होगा। ऐसा करने के लिए, बस
dotnet add package Redis.OMचलाएं . Redis OM लाइब्रेरी में प्राथमिक कनेक्शन लॉजिक
RedisConnectionProvider. में मौजूद है . यह प्रदाता तीन अलग-अलग वस्तुओं तक पहुंच प्रदान करता है जिनका उपयोग आप रेडिस के साथ संवाद करने के लिए कर सकते हैं:
- द
IRedisConnection
आपकोExecute
. का उपयोग करके सीधे Redis के साथ इंटरफेस करने देता है औरExecuteAsync
तरीके। - द
RedisCollection<T>
वस्तुओं का एक सामान्य रूप से टाइप किया गया संग्रह है। यह इंटरफ़ेस धाराप्रवाह क्वेरी API प्रदान करता है। - द
RedisAggregationSet<T>
आपको Fluent API का उपयोग करके Redis में एकत्रीकरण पाइपलाइन बनाने और निष्पादित करने की अनुमति देता है।
Redis से कनेक्ट करना
ASP.NET कोर में Redis OM को Redis से जोड़ने के लिए, आपको
RedisConnectionProviderका एक उदाहरण इंजेक्षन करना चाहिए उदाहरण एक सिंगलटन के रूप में। ऐसा करने के लिए, आप एक Redis URI का उपयोग करेंगे। यदि आप .NET 6 का उपयोग कर रहे हैं, तो इसका मतलब है कि अपना
program.cs. खोलना फ़ाइल और जोड़ना:
.NET 5 के लिए, जो Startup.cs फ़ाइल का उपयोग करता है, आप निम्न को
Startup.ConfigureServicesमें जोड़ सकते हैं। :
वस्तुओं की मॉडलिंग और खोज करना
RedisJSON आपको JSON ऑब्जेक्ट्स को Redis में मूल रूप से स्टोर करने देता है और उन ऑब्जेक्ट्स को क्वेरी करने देता है। लेकिन अपने JSON को क्वेरी करने के लिए, आपको पहले अपनी अनुक्रमणिका को परिभाषित करना होगा। इस प्रक्रिया को आसान बनाने के लिए, हमने Redis OM .NET में एक डिक्लेरेटिव मॉडल पेश किया है ताकि आप इन इंडेक्स को डिक्लेरेटिव इंटरफेस के जरिए परिभाषित कर सकें। यदि आप रेडिस में स्टोर करने के लिए एक वर्ग घोषित करना चाहते हैं और इसके गुणों को अनुक्रमित करना चाहते हैं, तो आप कक्षा को
Documentसे सजाते हैं विशेषता और फिर अलग-अलग गुणों को
Indexed. के साथ तैयार करें या
Searchableगुण।
Indexedएक मानक अनुक्रमणिका का अर्थ है, जबकि
Searchableकेवल स्ट्रिंग्स पर लागू होता है और इसका अर्थ है कि संपत्ति पूर्ण-पाठ खोज के साथ क्वेरी करने योग्य होगी। इसके बाद, आप अपने नए सजाए गए प्रकार को
IRedisConnection.CreateIndexमें पास करके रेडिस में इंडेक्स बना सकते हैं। तरीका। इसलिए, उदाहरण के लिए, यदि आप एक ग्राहक वर्ग को एक अनुक्रमणिका के साथ घोषित करना चाहते हैं, तो आप निम्न की तरह कुछ करेंगे:
क्वेरी करना
एक अनुक्रमणिका बनाने के साथ, अब आप
RedisCollection<T>. का उपयोग कर सकते हैं रेडिस में वस्तुओं को क्वेरी करने के लिए। इसलिए, यदि आपने जॉन को रेडिस में ग्राहक वस्तु के रूप में संग्रहीत किया था, तो आप उससे पूछ सकते हैं:
आप आसानी से रेंज क्वेश्चन भी कर सकते हैं। उदाहरण के लिए, आइए उन सभी ग्राहकों को खोजें जो सेवानिवृत्ति की आयु तक नहीं पहुंचे हैं:
RedisCollection. के साथ और RedisJSON, आप सामान्य रूप से LINQ में समृद्ध और जटिल प्रश्नों का निर्माण कर सकते हैं, और Redis OM आपके लिए Redis की क्वेरी भाषा में अनुवाद का प्रबंधन करेगा।
एकत्रीकरण
क्वेरी करने के अलावा, आप रेडिस एग्रीगेशन का उपयोग एकत्रीकरण पाइपलाइन बनाने के लिए कर सकते हैं जो सभी प्रकार की चीजें कर सकती है। उदाहरण के लिए, मान लीजिए कि आप 3 साल में प्रत्येक ग्राहक की आयु का पता लगाना चाहते हैं, तो आप एक
Applyके अंदर एक सरल अंकगणितीय ऑपरेशन के साथ ऐसा कर सकते हैं। अभिव्यक्ति, जो रेडिस में एक उचित रूप से स्वरूपित एकत्रीकरण पाइपलाइन में अनुवाद करेगी:
आप रिकॉर्ड को एक साथ समूहित भी कर सकते हैं और उन पर सारांश आँकड़ों की गणना कर सकते हैं। इसलिए यदि आप ग्राहकों को उनके अंतिम नाम से समूहित करना चाहते हैं, तो आप सारांश आंकड़ों की गणना कर सकते हैं। उदाहरण के लिए, यहां बताया गया है कि आप औसत आयु की गणना कैसे कर सकते हैं:
रैपिंग अप
यह .NET के लिए Redis OM की क्षमताओं का एक संक्षिप्त अवलोकन है। यदि आप और जानना चाहते हैं, तो आप ट्यूटोरियल देख सकते हैं और एपीआई दस्तावेज़ देख सकते हैं। हम जल्द ही Redis.OM में और अधिक सुविधाएँ जोड़ने की योजना बना रहे हैं, और इसके लिए, हमें कुछ सामुदायिक प्रतिक्रियाएँ पसंद आएंगी। आओ और इसे आजमाओ। यदि आपको कोई समस्या मिलती है या आप कुछ ऐसा सोचते हैं जिसे आप लाइब्रेरी में जोड़ना चाहते हैं, तो GitHub में एक समस्या खोलें। और स्वाभाविक रूप से, हम हमेशा समुदाय से योगदान पसंद करते हैं, इसलिए पीआर का हमेशा स्वागत है :)।