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

पेश है रेडिस ओम स्प्रिंग

Redis और स्प्रिंग के लिए ऑब्जेक्ट मैपिंग, और बहुत कुछ

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

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

प्रेरणा

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

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

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

Redis OM स्प्रिंग

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

विशेष रूप से, रेडिस ओएम स्प्रिंग अद्भुत स्प्रिंग डेटा रेडिस (एसडीआर) ढांचे पर निर्मित एक मजबूत भंडार और कस्टम ऑब्जेक्ट-मैपिंग एब्स्ट्रैक्शन प्रदान करता है।

वर्तमान पूर्वावलोकन रिलीज़ सभी स्प्रिंग डेटा रेडिस क्षमताओं को प्रदान करता है, साथ ही:

  • Java to JSON मैपिंग
  • उन्नत हैश मैपिंग
  • स्वचालित खोज अनुक्रमणिका निर्माण
  • RediSearch द्वारा समर्थित स्प्रिंग डेटा रिपॉजिटरी

Java से JSON मैपिंग

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

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

आप देख सकते हैं कि इस वर्ग के मुख्य भाग में कई एनोटेशन हैं।

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

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

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

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

Redis OM स्प्रिंग

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

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

$.tags[*] AS tags TAG

सरल गतिशील क्वेरी बनाएं

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

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

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

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

findOneByName

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

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

findByLocationNear

Redis OM स्प्रिंग भू-स्थानिक डेटा को संग्रहीत करने के लिए GeoJSON प्रकारों का समर्थन करता है।

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

भंडार का उपयोग करना

अन्य स्प्रिंग डेटा रिपॉजिटरी की तरह, आप रिपॉजिटरी को दूसरे स्प्रिंग घटक में इंजेक्ट कर सकते हैं:

रैपिंग अप

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


  1. पेश है MongoDB कम्पास

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

  1. रेडिस के प्रदर्शन पर विचार

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

  1. तेजी से गणना में रेडिस का प्रयोग करें

    यह उदाहरण Fastly CLI के पुराने संस्करण का उपयोग करता है। अप-टू-डेट संस्करण के लिए इस लेख को देखें। इस पोस्ट में हम एक साधारण एप्लीकेशन लिखेंगे जो Fastly Compute@Edge पर चलेगी। एप्लिकेशन पृष्ठ दृश्यों का ट्रैक रखने के लिए Upstash Redis को एक्सेस करेगा। प्रेरणा एज कंप्यूटिंग हाल के वर्षों में सबसे