Redis क्लाइंट C# (.NET) के लिए: StackExchange.Redis — कनेक्शन और उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) के लिए Redis क्लाइंट: StackExchange.Redis

.NET प्लेटफॉर्म पर आधुनिक डेवलपमेंट में हाई-परफॉर्मेंस कैशिंग सिस्टम और मैसेज ब्रोकर्स का उपयोग अक्सर ज़रूरी होता है। इसका सबसे लोकप्रिय समाधान Redis है — एक in-memory डेटा स्टोर जो "की-वैल्यू" सिद्धांत पर काम करता है। C# (.NET) से Redis के साथ इंटरैक्ट करने के लिए एक सिद्ध और शक्तिशाली लाइब्रेरी है StackExchange.Redis। इसे Stack Exchange (Stack Overflow के निर्माता) द्वारा विकसित किया गया है और यह Redis की सभी मुख्य क्षमताओं जैसे क्लस्टरिंग, रेप्लिकेशन और Pub/Sub को सपोर्ट करता है।

StackExchange.Redis क्या है?

StackExchange.Redis एक हाई-परफॉर्मेंस, एसिंक्रोनस Redis क्लाइंट है जो C# में लिखा गया है। यह लाइब्रेरी बड़ी संख्या में समवर्ती कनेक्शनों के साथ काम करने के लिए ऑप्टिमाइज़ की गई है और मल्टीप्लेक्सिंग को सपोर्ट करती है — एक कनेक्शन बिना ब्लॉकिंग के कई समानांतर अनुरोधों को संभाल सकता है। यह इसे .NET Core, .NET 5/6/7/8 और .NET Framework पर हाई-लोड एप्लिकेशन के लिए आदर्श बनाता है।

लाइब्रेरी की स्थापना

StackExchange.Redis को NuGet Package Manager के माध्यम से इंस्टॉल किया जाता है। सबसे आसान तरीका Visual Studio में पैकेज मैनेजर कंसोल या dotnet CLI का उपयोग करना है।

dotnet add package StackExchange.Redis

या NuGet के माध्यम से:

Install-Package StackExchange.Redis

सफल इंस्टॉलेशन के बाद, प्रोजेक्ट में असेंबली का संदर्भ जुड़ जाता है और आप Redis के साथ काम शुरू कर सकते हैं।

Redis सर्वर से कनेक्शन

इंटरैक्शन के लिए मुख्य क्लास ConnectionMultiplexer है। यह Redis से कनेक्शन का प्रबंधन करता है और स्वचालित रूप से पुन: कनेक्शन, नेटवर्क त्रुटियों और रेप्लिका पर स्विचिंग को संभालता है।

कनेक्शन बनाने का उदाहरण:

using StackExchange.Redis;

class Program
{
    static async Task Main(string[] args)
    {
        // लोकल Redis के लिए कनेक्शन स्ट्रिंग
        string connectionString = "localhost:6379";
        
        // मल्टीप्लेक्सर बनाना
        using var redis = await ConnectionMultiplexer.ConnectAsync(connectionString);
        
        // डेटाबेस प्राप्त करना (डिफ़ॉल्ट db=0)
        IDatabase db = redis.GetDatabase();
        
        // कनेक्शन की जाँच
        bool isConnected = db.Ping().TotalSeconds < 2;
        Console.WriteLine($"Connected: {isConnected}");
    }
}

कनेक्शन स्ट्रिंग में पासवर्ड, पोर्ट, SSL पैरामीटर और अन्य विकल्प शामिल हो सकते हैं। उदाहरण के लिए, पासवर्ड के साथ रिमोट Redis से कनेक्ट करने के लिए:

"myredis.cloud.com:6380,password=secret123,ssl=true"

डेटा के साथ मुख्य ऑपरेशन

IDatabase का इंस्टेंस प्राप्त करने के बाद, आप सभी मानक Redis ऑपरेशन कर सकते हैं।

स्ट्रिंग्स के साथ काम करना

// स्ट्रिंग लिखना
await db.StringSetAsync("user:1:name", "राहुल");

// स्ट्रिंग पढ़ना
string name = await db.StringGetAsync("user:1:name");
Console.WriteLine(name); // आउटपुट: राहुल

// काउंटर इंक्रीमेंट
await db.StringIncrementAsync("page:visits", 1);

हैश के साथ काम करना

// हैश फील्ड सेट करना
HashEntry[] userData = {
    new HashEntry("name", "प्रिया"),
    new HashEntry("age", 28),
    new HashEntry("city", "दिल्ली")
};
await db.HashSetAsync("user:2", userData);

// एक फील्ड प्राप्त करना
string city = await db.HashGetAsync("user:2", "city");
Console.WriteLine(city); // दिल्ली

// सभी हैश फील्ड प्राप्त करना
var allFields = await db.HashGetAllAsync("user:2");
foreach (var field in allFields)
{
    Console.WriteLine($"{field.Name}: {field.Value}");
}

लिस्ट के साथ काम करना

// लिस्ट में एलिमेंट जोड़ना (बाएं से)
await db.ListLeftPushAsync("notifications", "पहला नोटिफिकेशन");
await db.ListLeftPushAsync("notifications", "दूसरा नोटिफिकेशन");

// सभी लिस्ट एलिमेंट प्राप्त करना
var items = await db.ListRangeAsync("notifications");
foreach (var item in items)
{
    Console.WriteLine(item);
}

Pub/Sub (प्रकाशित/सदस्यता)

StackExchange.Redis Redis के Pub/Sub मैकेनिज्म को भी सपोर्ट करता है। यह रीयल-टाइम मैसेजिंग के लिए उपयोगी है।

// सब्सक्राइबर
var subscriber = redis.GetSubscriber();
await subscriber.SubscribeAsync("channel:updates", (channel, message) =>
{
    Console.WriteLine($"प्राप्त संदेश: {message}");
});

// प्रकाशक
await subscriber.PublishAsync("channel:updates", "नया अपडेट उपलब्ध!");

निष्कर्ष

StackExchange.Redis C# (.NET) डेवलपर्स के लिए Redis के साथ काम करने का सबसे अच्छा विकल्प है। यह तेज़, विश्वसनीय और सभी आधुनिक .NET वर्जन को सपोर्ट करता है। चाहे आप कैशिंग, सेशन मैनेजमेंट, या रीयल-टाइम मैसेजिंग के लिए Redis का उपयोग कर रहे हों, यह लाइब्रेरी आपकी ज़रूरतों को पूरा करेगी।

अनुशंसाएँ