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

.NET Core में Redis इंटीग्रेशन में महारत हासिल करना: एक व्यावहारिक गाइड

परिचय

Redis एक तेज़, इन-मेमोरी की-वैल्यू स्टोर है जिसका व्यापक रूप से आधुनिक एप्लिकेशन में कैशिंग, सेशन स्टोरेज, मैसेज ब्रोकिंग, और पब/सब कम्युनिकेशन के लिए उपयोग किया जाता है। यह हल्का, प्रदर्शनकारी, और डेवलपर-फ्रेंडली है, जो इसे स्केलेबल सिस्टम बनाने के लिए एक पसंदीदा विकल्प बनाता है।

यदि आप .NET Core में विकसित कर रहे हैं और अपने एप्लिकेशन में Redis इंटीग्रेट करना चाहते हैं, तो यह लेख आपको दिखाएगा कि StackExchange.Redis लाइब्रेरी का उपयोग करके बुनियादी Redis ऑपरेशन्स कैसे करें।

Windows सिस्टम पर काम करने वालों के लिए, Linux या कंटेनराइज़ेशन की आवश्यकता के बिना Redis चलाने के लिए एक Redis-कम्पेटिबल सर्वर का उपयोग किया जा सकता है।

Redis क्यों?

Redis .NET Core एप्लिकेशन के साथ इंटीग्रेट होने पर कई लाभ प्रदान करता है।

  1. कैशिंग: प्रतिक्रिया समय में सुधार और डेटाबेस वर्कलोड कम करने के लिए अक्सर एक्सेस किए जाने वाले डेटा को स्टोर करें।
  2. सेशन मैनेजमेंट: डिस्ट्रिब्यूटेड सिस्टम्स में उपयोगकर्ता सेशन्स को कुशलतापूर्वक संभालें।
  3. रियल-टाइम इवेंट्स: नोटिफिकेशन या इवेंट-ड्रिवन कम्युनिकेशन जैसी रियल-टाइम कार्यक्षमता को शक्ति देने के लिए Redis का पब/सब फीचर्स के लिए उपयोग करें।
  4. हाई परफॉरमेंस: मेमोरी में ऑपरेट करता है, लो-लेटेंसी डेटा एक्सेस प्रदान करता है।
  5. स्केलेबल: क्लस्टरिंग और शार्डिंग के सपोर्ट के साथ, Redis मांग के साथ स्केल करने के लिए बनाया गया है।

Redis सेटअप करना

Redis का उपयोग करना

अपने .NET Core ऐप को Redis से जोड़ने के लिए, आप Redis को या तो चला सकते हैं।

  • कमांड-लाइन इंस्टॉलेशन: Docker जैसे टूल्स का उपयोग करके Linux या Windows पर Redis चलाएं।
  • प्री-कॉन्फ़िगर्ड Windows विकल्प: यदि आप Windows पर हैं, तो आप Redis को नेटिव रूप से चलाने के लिए ड्रॉप-इन रिप्लेसमेंट के रूप में Redis-कम्पेटिबल सर्वर का उपयोग कर सकते हैं।

नोट. सरलता के लिए, यह ट्यूटोरियल मानता है कि Redis स्थानीय रूप से localhost:6379 पर चल रहा है।

.NET Core एप्लिकेशन को Redis के साथ बनाना

इस उदाहरण में, हम एक .NET Core कंसोल एप्लिकेशन बनाएंगे जो निम्नलिखित Redis ऑपरेशन्स करता है।

  1. Redis सर्वर से कनेक्ट करें।
  2. बुनियादी की-वैल्यू ऑपरेशन्स करें (सेट, गेट, डिलीट)।
  3. कुंजी समाप्ति और सत्यापन प्रदर्शित करें।

चरण 1. .NET Core प्रोजेक्ट बनाएं।

  1. एक टर्मिनल खोलें और एक नया प्रोजेक्ट बनाएं।

    dotnet new RedisIntegrationDemo
  2. Redis कनेक्टिविटी के लिए StackExchange.Redis पैकेज इंस्टॉल करें।

    dotnet add package StackExchange.Redis

चरण 2. कोड लिखें।

यहां Program.cs में पूर्ण कार्यान्वयन है।

using System;
using StackExchange.Redis;
using System.Threading.Tasks;
namespace RedisIntegrationDemo {
    class Program {
        // Redis के लिए कनेक्शन स्ट्रिंग
        private const string RedisConnectionString = "localhost:6379";
        async static Task Main(string[] args) {
            Console.WriteLine("Redis से कनेक्ट हो रहे हैं...");
            // Redis से कनेक्ट करें
            var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnectionString);
            Console.WriteLine("Redis से सफलतापूर्वक कनेक्टेड।\n");
            // Redis डेटाबेस एक्सेस करें
            IDatabase db = redis.GetDatabase();
            // Redis ऑपरेशन्स करें
            Console.WriteLine("Redis ऑपरेशन्स निष्पादित कर रहे हैं...");
            // 1. की-वैल्यू पेयर सेट करें
            string key = "SampleKey";
            string value = "Hello from Redis!";
            await db.StringSetAsync(key, value);
            Console.WriteLine($"सेट: {key} => {value}");
            // 2. कुंजी के लिए मान प्राप्त करें
            string savedValue = await db.StringGetAsync(key);
            Console.WriteLine($"गेट: {key} => {savedValue}");
            // 3. कुंजी के लिए समाप्ति सेट करें
            TimeSpan expiryTime = TimeSpan.FromSeconds(10);
            await db.KeyExpireAsync(key, expiryTime);
            Console.WriteLine("{key} के लिए समाप्ति सेट: {expiryTime.TotalSeconds} सेकंड");
            // 4. समाप्ति के बाद कुंजी अस्तित्व चेक करें
            Console.WriteLine("\nकुंजी के समाप्त होने की प्रतीक्षा कर रहे हैं...");
            await Task.Delay(12000); // 12 सेकंड प्रतीक्षा करें
            bool exists = await db.KeyExistsAsync(key);
            Console.WriteLine($"समाप्ति के बाद कुंजी मौजूद: {key} => {exists}");
            // कनेक्शन बंद करें
            redis.Close();
            Console.WriteLine("\nसभी Redis ऑपरेशन्स पूरे हुए।");
        }
    }
}

चरण 3. एप्लिकेशन चलाएं।

एप्लिकेशन निष्पादित करने के लिए।

dotnet run

अपेक्षित आउटपुट

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

.NET Core में Redis इंटीग्रेशन में महारत हासिल करना: एक व्यावहारिक गाइड

.NET Core के साथ Redis कैसे काम करता है?

यहां एप्लिकेशन चरण दर चरण क्या करता है,

  1. ConnectionMultiplexer का उपयोग करके Redis सर्वर से कनेक्ट होता है, जो कनेक्शन पूलिंग और सर्वर कम्युनिकेशन का प्रबंधन करता है।
  2. बुनियादी कमांड्स करता है।
    • StringSetAsync: Redis में एक की-वैल्यू पेयर सेट करता है।
    • StringGetAsync: एक कुंजी का मान प्राप्त करता है।
    • KeyExpireAsync: एक कुंजी के लिए समाप्ति समय सेट करता है।
    • KeyExistsAsync: जांचता है कि क्या एक कुंजी मौजूद है।
  3. समाप्ति के साथ डेटा के अस्थायी इन-मेमोरी स्टोरेज को संभालता है।

यदि आप Windows वातावरण में काम कर रहे हैं और नेटिव Redis इंस्टेंस इंस्टॉल करना या Docker उपयोग करना पसंद नहीं करते हैं, तो आप विकल्प के रूप में Redis-कम्पेटिबल सर्वर का उपयोग कर सकते हैं।

Redis-कम्पेटिबल सर्वर सेटअप करना

  • Windows के लिए Redis-कम्पेटिबल सर्वर इंस्टॉल करें।
  • एक बार इंस्टॉल होने पर, सर्वर आमतौर पर डिफ़ॉल्ट रूप से localhost:6379 पर चलता है, Redis के समान।
  • आपके एप्लिकेशन को Redis-कम्पेटिबल सर्वर के साथ काम करने के लिए किसी कोड परिवर्तन की आवश्यकता नहीं है।

Redis-कम्पेटिबल सर्वर का उपयोग करने से कंटेनर या वर्चुअलाइज़्ड वातावरण पर भरोसा किए बिना Redis कार्यक्षमता को Windows पर नेटिव रूप से चलाने की अनुमति मिलती है।

.NET Core में Redis उपयोग के लाभ

  1. प्रदर्शन: Redis पूरी तरह से मेमोरी में ऑपरेट करता है, जिससे अत्यंत कम लेटेंसी सक्षम होती है।
  2. उपयोग में आसानी: सामान्य की-वैल्यू आवश्यकताओं के लिए सरल API, लिस्ट्स, सेट्स, और हैशेज जैसे अतिरिक्त डेटा संरचनाओं के साथ।
  3. लचीलापन: Redis कई उद्देश्यों को पूरा करता है (जैसे, कैशिंग, मैसेज क्यूज़, पब/सब)।
  4. स्केलेबिलिटी: Redis क्लस्टरिंग और हाई उपलब्धता को मांग के साथ स्केल करने के लिए सपोर्ट करता है।

निष्कर्ष

अपने .NET Core एप्लिकेशन में Redis इंटीग्रेट करने से आप मांग वाले वर्कलोड को संभाल सकने वाले हाई-क्वालिटी, परफॉरमेंट सिस्टम बना सकते हैं। StackExchange.Redis लाइब्रेरी के साथ, आप Redis के साथ निर्बाध रूप से इंटरैक्ट कर सकते हैं।

सरल कैशिंग या सेशन मैनेजमेंट के लिए Redis लागू करके शुरू करें, और अपने डिस्ट्रिब्यूटेड .NET Core एप्लिकेशन में पब/सब और रियल-टाइम डेटा आवश्यकताओं के लिए इसके उपयोग का विस्तार करें।

हैप्पी कोडिंग और स्केलिंग!

  1. Windows में कमांड लाइन से MySQL डेटा डायरेक्टरी कैसे खोजें? Windows में कमांड लाइन से MySQL डेटा डायरेक्टरी कैसे खोजें?

    @@datadir वेरिएबल से MySQL डेटा डायरेक्टरी खोजें MySQL सर्वर का डेटा डायरेक्टरी (जहां डेटाबेस फ़ाइलें संग्रहीत होती हैं) @@datadir सिस्टम वेरिएबल से प्राप्त की जा सकती है। क्वेरी SELECT @@datadir; आउटपुट उदाहरण +---------------------------------------------+ | @@datadir

  1. एंड्रॉइड में वर्तमान वाई-फाई IP एड्रेस कैसे प्राप्त करें एंड्रॉइड में वर्तमान वाई-फाई IP एड्रेस कैसे प्राप्त करें

    WifiInfo से IP एड्रेस प्राप्त करना Formatter.formatIpAddress() का उपयोग करके WifiInfo.getIpAddress() से मिले इंटीजर IP को पठनीय स्ट्रिंग फॉर्मेट में बदलना। चरण 1-2: प्रोजेक्ट और लेआउट मानक सेटअप। चरण 3: MainActivity.java package com.example.myapplication; import android.net.wifi.WifiInfo; import

  1. ER डायग्राम न्यूनतमकरण: कार्डिनैलिटी के अनुसार न्यूनतम टेबल संख्या ER डायग्राम न्यूनतमकरण: कार्डिनैलिटी के अनुसार न्यूनतम टेबल संख्या

    ER (Entity-Relationship) डायग्राम का न्यूनतमकरण डेटाबेस डिज़ाइन में टेबलों की संख्या कम करने की प्रक्रिया है, जहां रिलेशनशिप टेबल को एंटिटी टेबल में मर्ज किया जाता है। न्यूनतम टेबलों की संख्या कार्डिनैलिटी (1:1, 1:N, M:N) पर निर्भर करती है। समस्या कथन ER डायग्राम विभिन्न टेबलों और उनके बीच संबंधों