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

C# के साथ Azure Redis Cache में महारत हासिल करना: एक व्यावहारिक मार्गदर्शिका

परिचय

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

Azure Redis Cache क्या है?

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

Redis Cache एक ओपन सोर्स, इन-मेमोरी डेटाबेस है जिसका उपयोग की-वैल्यू प्रारूप में कैश मेमोरी में डेटा को पुनः प्राप्त और संग्रहीत करके एप्लिकेशन के प्रदर्शन को बेहतर बनाने के लिए किया जाता है। Azure Redis Cache एक सुविधा-संपन्न कार्यक्षमता है जो आपको सुरक्षित, कम-विलंबता, उच्च-प्रदर्शन थ्रूपुट तक पहुंच प्रदान करती है।

आइए C# के साथ Redis Cache कार्यान्वयन शुरू करें।

चरण 1. Azure पोर्टल में लॉग इन करें, डेटाबेस >> Redis Cache पर जाएं।

चरण 2. एक नया Redis Cache बनाएं।

चरण 3. नए बनाए गए Redis Cache से जुड़ने के लिए एक्सेस कुंजियाँ प्राप्त करें।

C# के साथ Azure Redis Cache में महारत हासिल करना: एक व्यावहारिक मार्गदर्शिका

StackExchange.Redis इंस्टॉल करें

चरण 4. निम्नलिखित कमांड का उपयोग करके StackExchange.Redis NuGet पैकेज इंस्टॉल करें:

Install-Package StackExchange.Redis

आइए Redis Cache में डेटा स्टोर करने और Redis Cache से डेटा पुनः प्राप्त करने के लिए कोडिंग शुरू करें। हमने हाल ही में Azure Document DB CRUD ऑपरेशंस का कोड देखा था। यदि आपने इसे अभी तक नहीं पढ़ा है, तो Azure Document DB CRUD Operation पर क्लिक करें और पढ़ें। हमारे पास Document DB में CRUD ऑपरेशंस का कोड है। अब, हम यहां Redis Cache लागू करेंगे।

चरण 5. पिछले लेख के समान, हमें appsettings.dev.json फाइल में Redis Cache कनेक्शन स्ट्रिंग जोड़ने की आवश्यकता है।

C# के साथ Azure Redis Cache में महारत हासिल करना: एक व्यावहारिक मार्गदर्शिका

चरण 6. अब, Config.cs में एक और प्रॉपर्टी RedisCache जोड़ें जो appsettings.dev.json से Redis Cache कनेक्शन स्ट्रिंग का मान प्राप्त करेगा।

public class Config
{
    public DocDbConnectionString docDb { get; set; }
    public string RedisCache { get; set; }
}

public class DocDbConnectionString
{
    public string EndPoint { get; set; }
    public string AuthKey { get; set; }
    public string Database { get; set; }
    public string Collection { get; set; }
}

चरण 7. आइए program.cs फाइल पर आएं और Redis Cache के लिए ConnectionMultiplexer जोड़ें।

IDatabase cache = lazyConnection.Value.GetDatabase();
private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
{
    string cacheConnection = configs.RedisCache;
    return ConnectionMultiplexer.Connect(cacheConnection);
});

public static ConnectionMultiplexer Connection
{
    get { return lazyConnection.Value; }
}

अब, हम Document DB में डॉक्यूमेंट बनाते समय Key के आधार पर Redis Cache में एक डॉक्यूमेंट स्टोर करेंगे और इस डॉक्यूमेंट को पढ़ते समय, हम Key का उपयोग करके जांचेंगे कि डॉक्यूमेंट Redis Cache में मौजूद है या नहीं। यदि मौजूद है तो हम Document DB से डॉक्यूमेंट को आगे पढ़ना छोड़ देंगे। ऐसा करके, हम एप्लिकेशन के प्रदर्शन को बढ़ा सकते हैं।

var collection = UriFactory.CreateDocumentCollectionUri(configs.docDb.Database, configs.docDb.Collection);
try
{
    // कर्मचारी विवरण वाला JObject बनाएं
    Console.WriteLine("\nCreating document");
    JObject emp = new JObject();
    emp.Add("id", "V003");
    emp.Add("name", "virendra");
    emp.Add("address", "Indore");
    emp.Add("Country", "India");
    
    // DocumentDb में डॉक्यूमेंट बनाएं
    var createResponse = await Client.CreateDocumentAsync(collection, emp);
    var createdDocument = createResponse.Resource;
    Console.WriteLine("Document with id {0} created", createdDocument.Id);
    
    // Key "redisEmp3" के साथ JObject को redis cache में सेट करें
    var entryInRedis = await cache.StringSetAsync("redisEmp3", emp.ToString());
    Console.WriteLine("Document with key redisEmp3 stored into redis cache");
}
catch (Exception ex)
{
    throw ex;
}

चरण 8. इसके बजाय, आइए Redis Cache से डॉक्यूमेंट पढ़ें।

// Redis Cache से डॉक्यूमेंट पढ़ें।
var empInRedis = await cache.StringGetAsync("redisEmp3");
if (!empInRedis.IsNullOrEmpty)
{
    Console.WriteLine("Read Document from RedisCache {0} : ", empInRedis);
}

// यदि Redis Cache में डॉक्यूमेंट नहीं है, तो Document DB से डॉक्यूमेंट पढ़ें
if (empInRedis.IsNullOrEmpty)
{
    var readResponse = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(configs.docDb.Database, configs.docDb.Collection, "V001"));
    var readDocument = readResponse.Resource;
    Console.WriteLine("Read Document {0}: ", readResponse.Resource.ToString());
}

नीचे दिया गया स्नैपशॉट दिखाता है कि हम Redis Cache से डॉक्यूमेंट कैसे पढ़ते हैं।

चरण 10. निम्नलिखित Program.cs क्लास का पूरा कोड है।

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json.Linq;
using StackExchange.Redis;
using Microsoft.Azure.Documents.Client;

public class Program
{
    private static IConfiguration Configuration { get; set; }
    private static Config configs;
    private DocumentClient client;
    private IDatabase cache = lazyConnection.Value.GetDatabase();
    
    static void Main(string[] args)
    {
        // कॉन्फ़िगरेशन सेट अप करें
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable(\"ASPNETCORE_ENVIRONMENT\")}.json", optional: false, reloadOnChange: true);
        Configuration = builder.Build();
        configs = new Config();
        Configuration.Bind(configs);
        Program obj = new Program();
        obj.CRUDOperation().Wait();
    }
    
    // CRUD Operation
    private async Task CRUDOperation()
    {
        var collection = UriFactory.CreateDocumentCollectionUri(configs.docDb.Database, configs.docDb.Collection);
        try
        {
            // कर्मचारी विवरण वाला JObject बनाएं
            Console.WriteLine("\nCreating document");
            JObject emp = new JObject();
            emp.Add("id", "V003");
            emp.Add("name", "virendra");
            emp.Add("address", "Indore");
            emp.Add("Country", "India");
            
            // डॉक्यूमेंट बनाएं
            var createResponse = await Client.CreateDocumentAsync(collection, emp);
            var createdDocument = createResponse.Resource;
            Console.WriteLine("Document with id {0} created", createdDocument.Id);
            
            // Key "redisEmp3" के साथ JObject को redis cache में सेट करें
            var entryInRedis = await cache.StringSetAsync("redisEmp3", emp.ToString());
            Console.WriteLine("Document with key redisEmp3 stored into redis cache");
        }
        catch (Exception ex)
        {
            throw ex;
        }
        
        // redis cache से डॉक्यूमेंट पढ़ें
        var empInRedis = await cache.StringGetAsync("redisEmp3");
        if (!empInRedis.IsNullOrEmpty)
        {
            Console.WriteLine("Read Document from RedisCache {0} : ", empInRedis);
        }
        
        if (empInRedis.IsNullOrEmpty)
        {
            // Document DB से डॉक्यूमेंट पढ़ें
            var readResponse = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(configs.docDb.Database, configs.docDb.Collection, "V001"));
            var readDocument = readResponse.Resource;
            Console.WriteLine("Read Document {0}: ", readResponse.Resource.ToString());
        }
    }
    
    // Document client का एकल उदाहरण प्राप्त करें और पुनः उपयोग करें
    public DocumentClient Client
    {
        get
        {
            if (client == null)
            {
                Uri endpointUri = new Uri(configs.docDb.EndPoint);
                client = new DocumentClient(endpointUri, configs.docDb.AuthKey, null, ConsistencyLevel.Session);
                client.OpenAsync();
            }
            return client;
        }
    }
    
    // Redis Cache कनेक्शन स्थापित करने के लिए
    private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() =>
    {
        string cacheConnection = configs.RedisCache;
        return ConnectionMultiplexer.Connect(cacheConnection);
    });
    
    public static ConnectionMultiplexer Connection
    {
        get { return lazyConnection.Value; }
    }
}

मुझे आशा है कि यह लेख आपकी मदद करेगा।

  1. HTML Window screenY प्रॉपर्टी HTML Window screenY प्रॉपर्टी

    विवरण HTML Window screenY प्रॉपर्टी स्क्रीन के सापेक्ष विंडो के ऊर्ध्वाधर निर्देशांक लौटाती है। यह सभी ब्राउज़रों द्वारा समर्थित है। सिंटैक्स window.screenY उदाहरण आइए HTML Window screenY प्रॉपर्टी का एक उदाहरण देखें: <!DOCTYPE html> <html> <style> body { color: #000;

  1. Android में HashMap को GSON का उपयोग करके JSON में कैसे बदलें? Android में HashMap को GSON का उपयोग करके JSON में कैसे बदलें?

    Android में GSON लाइब्रेरी का उपयोग करके HashMap को JSON में परिवर्तित करना GSON एक जावा लाइब्रेरी है। इसका उपयोग OBJECT को JSON में और JSON को Object में बदलने के लिए किया जाता है। आंतरिक रूप से यह सीरियलाइज़ेशन और डीसीरियलाइज़ेशन पर आधारित काम करता है। यह उदाहरण दर्शाता है कि GSON लाइब्रेरी का उपय

  1. Android में प्रोग्रामेटिकली WiFi चालू/बंद कैसे करें? Android में प्रोग्रामेटिकली WiFi चालू/बंद कैसे करें?

    Android ऐप से WiFi को प्रोग्रामेटिकली ऑन/ऑफ करना यह उदाहरण दिखाता है कि कैसे एक Switch विजेट का उपयोग करके WiFi को चालू और बंद किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में Switch और TextView जोड़ें res/layout/activity_main.xml: <?xml version