परिचय
<पी> आज की तेज़ गति वाली डिजिटल दुनिया में, एप्लिकेशन से उच्च प्रदर्शन और प्रतिक्रिया देने की उम्मीद की जाती है। इसे प्राप्त करने का एक तरीका कैशिंग तंत्र को लागू करना है जो बार-बार एक्सेस किए गए डेटा को संग्रहीत करता है, जिससे इसे डेटाबेस से बार-बार लाने की आवश्यकता कम हो जाती है। Redis, एक लोकप्रिय इन-मेमोरी डेटा स्टोर, .NET कोर अनुप्रयोगों के लिए एक मजबूत कैशिंग समाधान प्रदान करता है। इस लेख में, हम व्यावहारिक उदाहरणों के साथ .NET कोर 6 एप्लिकेशन में रेडिस कैश को एकीकृत करने का तरीका जानेंगे। <पी> पूर्वापेक्षाएँ पी> <पी> शुरू करने से पहले, सुनिश्चित करें कि आपके सिस्टम पर निम्नलिखित आवश्यकताएँ स्थापित हैं। - .NET कोर 6 एसडीके: सुनिश्चित करें कि आपके पास .NET Core 6 SDK या बाद का संस्करण स्थापित है। आप इसे आधिकारिक .NET वेबसाइट से डाउनलोड कर सकते हैं।
- रेडिस सर्वर: Redis सर्वर को स्थानीय रूप से स्थापित करें और चलाएं या Redis क्लाउड सेवा का उपयोग करें।
विंडो पर रैडिस सर्वर स्थापित करें
रेडिस डाउनलोड करें
<पी> आप इस GitHub पृष्ठ से 64-बिट विंडोज़ के लिए Redis का एक मामूली पुराना पूर्व-संकलित संस्करण डाउनलोड कर सकते हैं:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi <पी> इस लिंक पर क्लिक करके, आपको एक .msi फ़ाइल मिलेगी जो एक Windows इंस्टालर है . अब अपने डाउनलोड पर जाएं फ़ोल्डर खोलें और इस फ़ाइल को ढूंढें। <पी> अब उस फ़ाइल पर क्लिक करें और Redis इंस्टॉल करें। <पी> Redis सर्वर को C:\Program Files\Redis पर स्थापित किया जाना चाहिए था . वहां आपको redis-server नामक एक .exe फ़ाइल मिलेगी पी> <पी>
<पी> अब एक कमांड लाइन खोलें और इस कमांड को दर्ज करें।
redis-server
<पी>
<पी> आपका Redis सर्वर चलना शुरू हो गया। <पी> अब आप इस कमांड द्वारा रेडिस सर्वर में अपडेट और बदलावों की निगरानी कर सकते हैं।
redis-cli monitor
<पी>
एक .NET कोर 6 कंसोल एप्लिकेशन बनाएं
dotnet new console -n RedisCacheDemo
<पी> प्रोजेक्ट फ़ोल्डर पर नेविगेट करें पी>
cd RedisCacheDemo
<पी> आवश्यक पैकेज स्थापित करें पी>
dotnet add package StackExchange.Redis
रेडिस कनेक्शन कॉन्फ़िगर करें
<पी> Program.cs में फ़ाइल, आवश्यक विवरण जोड़ें, और Main में रेडिस कनेक्शन को कॉन्फ़िगर करें विधि:
static void Main(string[] args)
{
var configuration = ConfigurationOptions.Parse("localhost:6379");
var redisConnection = ConnectionMultiplexer.Connect(configuration);
var redisCache = redisConnection.GetDatabase();
Console.WriteLine("Fetching data with caching:");
var cachedData = GetDataWithCaching(redisCache);
Console.WriteLine($"Result: {cachedData}");
Console.WriteLine("Fetching data without caching:");
var uncachedData = GetDataFromDatabase();
Console.WriteLine($"Result: {uncachedData}");
redisConnection.Close(); //It is important to close the connection
}
static string GetDataFromDatabase()
{
// Simulate fetching data from the database
// Replace this with your actual database fetching logic
Thread.Sleep(2000); // Simulating latency
return "Start";
}
static string GetDataWithCaching(IDatabase redisCache)
{
// redisCache.KeyDelete("cachedData"); // For Delete the Cache
// redisCache.StringSet("cachedData", "Test", TimeSpan.FromMinutes(1)); // For Update the Cache
string cachedData = redisCache.StringGet("cachedData");
if (string.IsNullOrEmpty(cachedData))
{
cachedData = GetDataFromDatabase();
redisCache.StringSet("cachedData", cachedData, TimeSpan.FromMinutes(1));
}
return cachedData;
}
<पी> कृपया इस कार्यक्रम के निष्पादन के साथ आगे बढ़ें। <पी> पी> <पी> इस आउटपुट में, कैश के साथ और उसके बिना परिणाम समान है। ऐसा इसलिए है क्योंकि आउटपुट पहली बार जेनरेट होने पर कैश में संग्रहीत होता है। हालाँकि, यदि कोड में कोई बदलाव होता है, तो परिणाम अलग होंगे।
static string GetDataFromDatabase()
{
// Simulate fetching data from the database
// Replace this with your actual database fetching logic
Thread.Sleep(2000); // Simulating latency
return "Last";
}
<पी> मैंने कोड का मान अपडेट कर दिया है और इसे फिर से चलाऊंगा। <पी> पी> <पी> इस आउटपुट में, पहला मान कैश से पुनर्प्राप्त किया जाता है, और दूसरा मान कैश का उपयोग किए बिना पुनर्प्राप्त किया जाता है। निष्कर्ष
<पी> बधाई हो! आपने Redis कैश को अपने .NET Core 6 एप्लिकेशन में सफलतापूर्वक एकीकृत कर लिया है। कैशिंग लागू करके, आपने अपने एप्लिकेशन के प्रदर्शन और प्रतिक्रियाशीलता में सुधार किया है, जिससे यह बार-बार एक्सेस किए गए डेटा को संभालने में अधिक कुशल हो गया है।