কম্পিউটার টিউটোরিয়াল

.NET Core 6-এ রেডিস ক্যাশিং দিয়ে পারফরম্যান্স বাড়ান: ধাপে ধাপে গাইড

ভূমিকা

আজকের দ্রুত পরিবর্তনশীল ডিজিটাল বিশ্বে, অ্যাপ্লিকেশন থেকে হাই পারফরম্যান্স এবং রেসপন্সিভনেস আশা করা হয়। এটি অর্জন করার একটি উপায় হলো ক্যাশিং মেকানিজম বাস্তবায়ন করা যা ঘন ঘন অ্যাক্সেস করা ডেটা সংরক্ষণ করে, ফলে বারবার ডেটাবেস থেকে ডেটা ফেচ করার প্রয়োজন নেই। রেডিস, একটি জনপ্রিয় ইন-মেমরি ডেটা স্টোর, .NET Core অ্যাপ্লিকেশনের জন্য একটি বাস্ট ক্যাশিং সমাধান প্রদান করে। এই নিবন্ধে, আমরা প্র্যাক্টিক্যাল উদাহরণসহ .NET Core 6 অ্যাপ্লিকেশনে রেডিস ক্যাশ ইন্টিগ্রেট করার পদ্ধতি অন্বেষণ করব।

পূর্বশর্ত

শুরু করার আগে, নিচের প্রিরিকোয়িজিটগুলো আপনার সিস্টেমে ইনস্টলড আছে কিনা নিশ্চিত করুন।

  1. .NET Core 6 SDK: নিশ্চিত করুন যে .NET Core 6 SDK বা তার পরের ভার্সন ইনস্টলড আছে। অফিসিয়াল .NET ওয়েবসাইট থেকে ডাউনলোড করতে পারেন।
  2. রেডিস সার্ভার: 로컬ি রেডিস সার্ভার ইনস্টল ও রান করুন অথবা রেডিস ক্লাউড সার্ভিস ব্যবহার করুন।

Windows-এ রেডিস সার্ভার ইনস্টল করুন

রেডিস ডাউনলোড

আপনি 64-বিট উইন্ডোজের জন্য মাঝপথে আউটডেটেড প্রিকম্পাইলড রেডিস ভার্সন এই GitHub পেজ থেকে ডাউনলোড করতে পারেন: https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi

এই লিংক-এ ক্লিক করলে আপনি একটি .msi ফাইল পাবেন যা একটি Windows installer। এখন আপনার Downloads ফোল্ডারে যান এবং এই ফাইলটি খুঁজুন।

এখন সেই ফাইলটিতে ক্লিক করুন এবং রেডিস ইনস্টল করুন।

রেডিস সার্ভার ইনস্টল হওয়া উচিত C:\Program Files\Redis-এ। সেখানে আপনি redis-server নামে একটি .exe ফাইল পাবেন।

.NET Core 6-এ রেডিস ক্যাশিং দিয়ে পারফরম্যান্স বাড়ান: ধাপে ধাপে গাইড

এখন একটি কমান্ড লাইন খুলুন এবং এই কমান্ডটি দিন।

redis-server

.NET Core 6-এ রেডিস ক্যাশিং দিয়ে পারফরম্যান্স বাড়ান: ধাপে ধাপে গাইড

আপনার রেডিস সার্ভার চালু হয়ে গেছে।

এখন আপনি এই কমান্ড দিয়ে রেডিস সার্ভারের আপডেট এবং পরিবর্তন মনিটর করতে পারেন।

redis-cli monitor

.NET Core 6-এ রেডিস ক্যাশিং দিয়ে পারফরম্যান্স বাড়ান: ধাপে ধাপে গাইড

.NET Core 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(); // কানেকশন বন্ধ করা গুরুত্বপূর্ণ
}

static string GetDataFromDatabase() {
    // ডেটাবেস থেকে ডেটা ফেচ করার সিমুলেশন
    // আপনার আসল ডেটাবেস ফেচিং লজিক দিয়ে রিপ্লেস করুন
    Thread.Sleep(2000); // লেটেন্সি সিমুলেট করছে
    return "Start";
}

static string GetDataWithCaching(IDatabase redisCache) {
    // redisCache.KeyDelete("cachedData"); // ক্যাশ ডিলিট করার জন্য
    // redisCache.StringSet("cachedData", "Test", TimeSpan.FromMinutes(1)); // ক্যাশ আপডেট করার জন্য
    string cachedData = redisCache.StringGet("cachedData");
    if (string.IsNullOrEmpty(cachedData)) {
        cachedData = GetDataFromDatabase();
        redisCache.StringSet("cachedData", cachedData, TimeSpan.FromMinutes(1));
    }
    return cachedData;
}

এই প্রোগ্রামটি এক্সিকিউট করুন।

এই আউটপুটে, ক্যাশসহ এবং ক্যাশবিহীন রেজাল্ট একই। কারণ আউটপুট প্রথমবার জেনারেট হলে ক্যাশে সংরক্ষিত হয়। তবে যদি কোডে কোনো পরিবর্তন হয়, তবে রেজাল্ট ভিন্ন হবে।

static string GetDataFromDatabase() {
    // ডেটাবেস থেকে ডেটা ফেচ করার সিমুলেশন
    // আপনার আসল ডেটাবেস ফেচিং লজিক দিয়ে রিপ্লেস করুন
    Thread.Sleep(2000); // লেটেন্সি সিমুলেট করছে
    return "Last";
}

আমি কোডের মান আপডেট করেছি এবং পুনরায় রান করব।

এই আউটপুটে, প্রথম মান ক্যাশ থেকে রিট্রিভ হয়েছে, এবং দ্বিতীয় মান ক্যাশ ছাড়া রিট্রিভ হয়েছে।

উপসংহার

অভিনন্দন! আপনি সফলভাবে আপনার .NET Core 6 অ্যাপ্লিকেশনে রেডিস ক্যাশ ইন্টিগ্রেট করেছেন। ক্যাশিং বাস্তবায়ন করে, আপনি আপনার অ্যাপ্লিকেশনের পারফরম্যান্স এবং রেসপন্সিভনেস উন্নত করেছেন, যা ঘন ঘন অ্যাক্সেস করা ডেটা হ্যান্ডল করার ক্ষেত্রে আরও দক্ষ করে তুলেছে।

  1. Android অ্যাপ্লিকেশনে ইন্টারনেট অ্যাক্সেসের জন্য কোন পারমিশন দরকার?

  2. MySQL-এ BLOB এবং TEXT ডেটা টাইপের পার্থক্য কী?

  3. C++-এ নাইটের ন্যূনতম মুভ গণনা করুন

  4. গ্রাফ এবং এর ট্রাভার্সাল অ্যালগরিদম