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

Redis OM Spring: अपने Spring ऐप्स को तेज़, शक्तिशाली Redis ऑब्जेक्ट मैपिंग के साथ सशक्त करें

Redis और Spring के लिए ऑब्जेक्ट मैपिंग, और अधिक

Redis OM Spring एक नई क्लाइंट लाइब्रेरी है जिसे आपके Spring एप्लिकेशन में अपने डोमेन को मॉडल करने और डेटा को Redis में बनाए रखने में मदद करने के लिए डिज़ाइन किया गया है। लाइब्रेरी ओपन सोर्स Redis के साथ काम करती है लेकिन RedisJSON के साथ उपयोग किए जाने पर कई अतिरिक्त इंडेक्सिंग और क्वेरीइंग क्षमताएं प्रदान करती है।

Redis, अपने मॉड्यूल के साथ मिलकर, ग्रह पर सबसे तेज़ डेटा प्लेटफॉर्म में से एक बनाता है। लेकिन इसकी गति का लाभ उठाना हमेशा आसान नहीं रहा है। Redis OM Spring एक आकर्षक डेवलपर अनुभव प्रदान करता है, और इस पोस्ट में मैं आपको दिखाने जा रहा हूं कि आप इसके साथ क्या बना सकते हैं।

प्रेरणा

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

इसी तरह, एंटरप्राइज़ Java डेवलपमेंट की दुनिया में, Spring ने पिछले 18 वर्षों में बड़ी, सुविधा-संपन्न एप्लिकेशन बनाने की जटिलता को वश में किया है। इस क्षेत्र में, Redis को अद्भुत Spring Data Redis द्वारा समर्थित किया गया है, जो OSS Redis के साथ बातचीत के लिए निम्न-स्तरीय और उच्च-स्तरीय दोनों अमूर्तताएं प्रदान करता है।

Spring Data Redis का उपयोग करने में चुनौतियों में से एक यह है कि यह Redis मॉड्यूल का समर्थन नहीं करता है। यहां Redis में, हम कई गेम-चेंजिंग Redis मॉड्यूल विकसित करते हैं जो खोज, JSON इंडेक्सिंग और क्वेरीइंग, ग्राफ डेटा, समय श्रृंखला डेटा, और सर्वर-साइड कंप्यूटेशन (Redis Gears) के लिए एक पूर्ण फ्रेमवर्क के साथ Redis कोर डेटा संरचनाओं को समृद्ध करते हैं। हमने इन मॉड्यूल का लाभ उठाने और क्षमताओं का एक व्यापक सेट प्रदान करने के लिए Redis OM Spring बनाया।

Redis OM Spring

Redis OM क्लाइंट लाइब्रेरी का परिवार आपकी पसंद की भाषा/प्लेटफॉर्म के लिए मुहावरेदार तरीके से लागू उच्च-स्तरीय अमूर्तताएं प्रदान करने का लक्ष्य रखता है। हम वर्तमान में Node.js, Python, .NET, और Spring समुदायों को पूरा करते हैं। Redis OM Spring डेवलपर्स को अपने Spring Boot एप्लिकेशन में Redis की शक्ति को आसानी से जोड़ने देता है।

विशेष रूप से, Redis OM Spring अद्भुत Spring Data Redis (SDR) फ्रेमवर्क पर निर्मित एक मजबूत रिपॉजिटरी और कस्टम ऑब्जेक्ट-मैपिंग अमूर्तताएं प्रदान करता है।

वर्तमान पूर्वावलोकन रिलीज Spring Data Redis की सभी क्षमताएं प्रदान करता है, साथ ही:

  • Java से JSON मैपिंग
  • उन्नत Hash मैपिंग
  • स्वचालित खोज इंडेक्स निर्माण
  • RediSearch द्वारा समर्थित Spring Data रिपॉजिटरी

Java से JSON मैपिंग

RedisJSON का उपयोग करके Redis में संग्रहीत JSON दस्तावेजों में Java ऑब्जेक्ट्स को मैप करने के लिए, आप

@Document
एनोटेशन का उपयोग कर सकते हैं। किसी अन्य Spring Data एंटिटी मैपिंग एनोटेशन की तरह, आप इसे क्लास घोषणा में जोड़ते हैं। उदाहरण के लिए, कल्पना करें कि आप
Company
प्रकार की वस्तुओं को मैप करना चाहते हैं। बस नीचे दिखाए अनुसार
@Document
जोड़ें:

आप देख सकते हैं कि इस क्लास के शरीर में कई एनोटेशन हैं।

@Id
Spring Data से आता है, और यह
id
संपत्ति को Redis कुंजी के रूप में घोषित करता है जो हमारे JSON दस्तावेज़ को स्टोर करेगा।

शायद Spring Data लाइब्रेरी परिवार की सबसे लोकप्रिय विशेषता घोषणात्मक डेटा रिपॉजिटरी है। अगले दो एनोटेशन आपको JSON दस्तावेजों को इंडेक्स करने के लिए RediSearch का उपयोग करने देते हैं। यह

RedisDocumentRepository
इंटरफेस के माध्यम से उजागर किया गया है:

खाली रिपॉजिटरी घोषणा आपके POJOs के लिए बुनियादी CRUD कार्यक्षमता/पेजिनेशन और सॉर्टिंग प्राप्त करने के लिए आवश्यक है।

Redis OM Spring POJO फ़ील्ड का उपयोग करता है जिन्हें

@Indexed
या
@Searchable
के साथ एनोटेट किया गया है इंडेक्स स्कीमा बनाने के लिए।
Company
POJO के मामले में, हमारे पास एक नाम संपत्ति है जिसे "खोजने योग्य" के रूप में एनोटेट किया गया है, जिसका अर्थ है कि हमें उस फ़ील्ड पर पूर्ण-पाठ खोज क्षमताएं मिलती हैं। यह स्कीमा फ़ील्ड परिभाषा
$.name AS name TEXT
में परिलक्षित होता है।

दूसरी ओर, फ़ील्ड टैग को "इंडेक्सेबल" के रूप में एनोटेट किया गया है, जिसका अर्थ है कि हमें TAG प्रकार का एक इंडेक्स फ़ील्ड मिलता है, जिसका अर्थ है कि हम फ़ील्ड के सटीक मान द्वारा कंपनियों की खोज कर सकते हैं। यह फिर से स्कीमा फ़ील्ड परिभाषा में परिलक्षित होता है:

$.tags[*] AS tags TAG

सरल डायनामिक क्वेरी बनाएं

शायद Redis OM Spring की सबसे सम्मोहक विशेषता रनटाइम पर रिपॉजिटरी इंटरफेस से स्वचालित रूप से रिपॉजिटरी कार्यान्वयन बनाने की क्षमता है। उचित फ़ील्ड इंडेक्स होने के साथ, अब आप नीचे दिए गए सभी क्वेरी को बिना कोई अतिरिक्त कोड लिखे पूरा कर सकते हैं:

रिपॉजिटरी प्रॉक्सी के पास स्टोर-विशिष्ट क्वेरी को विधि नाम से प्राप्त करने के दो तरीके हैं:

  • विधि नाम से सीधे क्वेरी प्राप्त करके।
  • @Query
    या
    @Aggregation
    एनोटेशन का उपयोग करके मैन्युअल रूप से परिभाषित क्वेरी का उपयोग करके।

आइए रिपॉजिटरी इंटरफेस में जोड़े गए कुछ विधि घोषणाओं की जांच करें।

findOneByName

Redis OM Spring उपयुक्त क्वेरी उत्पन्न करने के लिए विधि नाम और पैरामीटर का उपयोग करता है। यह परिणाम को पैकेज और वापस करने का तरीका निर्धारित करने के लिए विधि रिटर्न प्रकार का उपयोग करता है।

findOneByName
एक
Optional of Company
लौटाता है।
findOne
का अर्थ यह भी है कि केवल एक परिणाम वापस किया जाएगा, भले ही कई परिणाम हों। लाइब्रेरी अपेक्षित पैरामीटर की संख्या निर्धारित करने के लिए विधि नाम को पार्स करती है। उदाहरण के लिए, विधि के
ByName
भाग से हमें पता चलता है कि हमें
name
नामक एक पैरामीटर की अपेक्षा है।

findByLocationNear

Redis OM Spring जियोस्पेशियल डेटा स्टोर करने के लिए GeoJSON प्रकारों का समर्थन करता है। हमारी क्वेरी में

near
कीवर्ड का उपयोग करके, हम अपने कोड को
Point
(org.springframework.data.geo.Point)
और
Distance (org.springframework.data.geo.Distance)
प्रकार के पैरामीटर की अपेक्षा करने के लिए कह रहे हैं।

रिपॉजिटरी का उपयोग करना

अन्य Spring Data रिपॉजिटरी के साथ, आप एक रिपॉजिटरी को किसी अन्य Spring घटक में इंजेक्ट कर सकते हैं:

समापन

यह Redis OM Spring का सिर्फ एक पूर्वावलोकन रिलीज है। अभी भी बहुत कुछ बनाना बाकी है, लेकिन अभी हमें आपकी मदद की ज़रूरत है! आप अपने Spring एप्लिकेशन में प्रोजेक्ट इंस्टॉल करने के तरीके के विवरण के लिए README देख सकते हैं। हम आपकी प्रतिक्रिया, PRs, और इश्यू का स्वागत करते हैं!

  1. MongoDB Compass खोजें: निर्बाध डेटा प्रबंधन के लिए आपका विज़ुअल टूल MongoDB Compass खोजें: निर्बाध डेटा प्रबंधन के लिए आपका विज़ुअल टूल

    अवलोकन यह पोस्ट MongoDB® के लिए GUI, जिसे MongoDB Compass के नाम से जाना जाता है, का परिचय देती है। Compass आपको MongoDB क्वेरी सिंटैक्स के किसी औपचारिक ज्ञान के बिना अपने MongoDB डेटा का विश्लेषण और समझने की अनुमति देता है। आप क्वेरी प्रदर्शन को अनुकूलित करने, इंडेक्स प्रबंधित करने, और डॉक्यूमेंट व

  1. Redis प्रदर्शन को अधिकतम करना: विशेषज्ञ अंतर्दृष्टि और सर्वोत्तम प्रथाएं Redis प्रदर्शन को अधिकतम करना: विशेषज्ञ अंतर्दृष्टि और सर्वोत्तम प्रथाएं

    मुझे कई लोगों और कंपनियों के साथ बात करने का विशेषाधिकार प्राप्त है जो साधारण कैशिंग से लेकर मल्टी-टेराबाइट आकार के सेटअप तक विभिन्न उपयोग के मामलों में Redis का उपयोग कर रहे हैं, जिस एक विषय पर मुझे किसी भी अन्य की तुलना में अधिक संबोधित करने के लिए कहा जाता है वह है प्रदर्शन। Redis इस मामले में अल

  1. फास्टली कंप्यूट@एज के साथ रेडिस को एकीकृत करना: कुशल पेज व्यू ट्रैकिंग के लिए फास्टली कंप्यूट@एज के साथ रेडिस को एकीकृत करना: कुशल पेज व्यू ट्रैकिंग के लिए

    इस पोस्ट में, हम एक साधारण एप्लिकेशन लिखेंगे जो फास्टली कंप्यूट@एज पर चलेगा। यह एप्लिकेशन पेज व्यू को ट्रैक करने के लिए अपस्टैश रेडिस का उपयोग करेगा। प्रेरणा एज कंप्यूटिंग हाल के वर्षों में सबसे रोमांचक ट्रेंड्स में से एक है। क्लाउडफ्लेयर और फास्टली जैसी CDN सेवाओं ने उपयोगकर्ताओं को अपने एज इंफ्रा