পরিচয়
Redis হল একটি দ্রুত, ইন-মেমরি কী-ভ্যালু স্টোর যা আধুনিক অ্যাপ্লিকেশনগুলিতে ক্যাশিং, সেশন স্টোরেজ, বার্তা ব্রোকিং এবং পাব/সাব যোগাযোগের জন্য ব্যাপকভাবে ব্যবহৃত হয়। এটি লাইটওয়েট, পারফরম্যান্স এবং ডেভেলপার-বান্ধব, এটিকে স্কেলেবল সিস্টেম তৈরির জন্য একটি পছন্দের পছন্দ করে তোলে।
আপনি যদি .NET কোরে বিকাশ করছেন এবং আপনার অ্যাপ্লিকেশনে Redis সংহত করতে চান, তাহলে এই নিবন্ধটি আপনাকে দেখাবে কিভাবে StackExchange.Redis লাইব্রেরি ব্যবহার করতে হয় মৌলিক Redis ক্রিয়াকলাপগুলি সম্পাদন করতে৷
যারা উইন্ডোজ সিস্টেমে কাজ করছেন তাদের জন্য, একটি রেডিস-সামঞ্জস্যপূর্ণ সার্ভার ব্যবহার করা যেতে পারে রেডিস চালানোর জন্য লিনাক্স বা কন্টেইনারাইজেশনের প্রয়োজন ছাড়াই৷
কেন রেডিস?
একটি .NET কোর অ্যাপ্লিকেশনের সাথে একীভূত হলে Redis বেশ কিছু সুবিধা প্রদান করে।
- ক্যাশিং: প্রতিক্রিয়া সময় উন্নত করতে এবং ডাটাবেসের কাজের চাপ কমাতে ঘন ঘন অ্যাক্সেস করা ডেটা সংরক্ষণ করুন।
- সেশন ম্যানেজমেন্ট: বিতরণ করা সিস্টেমে দক্ষতার সাথে ব্যবহারকারীর সেশন পরিচালনা করুন।
- রিয়েল-টাইম ইভেন্ট: বিজ্ঞপ্তি বা ইভেন্ট-চালিত যোগাযোগের মতো রিয়েল-টাইম কার্যকারিতা পাওয়ার জন্য পাব/সাব বৈশিষ্ট্যগুলির জন্য Redis ব্যবহার করুন৷
- উচ্চ কর্মক্ষমতা: মেমরিতে কাজ করে, কম লেটেন্সি ডেটা অ্যাক্সেস অফার করে৷
- স্কেলযোগ্য: ক্লাস্টারিং এবং শার্ডিংয়ের সমর্থন সহ, রেডিস স্কেলেবিলিটির জন্য তৈরি করা হয়েছে।
Redis সেট আপ করা হচ্ছে
Redis ব্যবহার করা হচ্ছে
আপনার .NET কোর অ্যাপটিকে Redis-এর সাথে সংযুক্ত করতে, আপনি Redis চালাতে পারেন৷
৷- কমান্ড-লাইন ইনস্টলেশন: Linux বা Windows এ Redis চালানোর জন্য Docker এর মত টুল ব্যবহার করুন।
- প্রি-কনফিগার করা উইন্ডোজ বিকল্প: আপনি যদি উইন্ডোজে থাকেন, তাহলে আপনি রেডিসকে নেটিভভাবে চালানোর জন্য ড্রপ-ইন প্রতিস্থাপন হিসাবে একটি Redis-সামঞ্জস্যপূর্ণ সার্ভার ব্যবহার করতে পারেন।
দ্রষ্টব্য। সরলতার জন্য, এই টিউটোরিয়ালটি অনুমান করে যে Redis স্থানীয়ভাবে লোকালহোস্ট:6379-এ চলছে।
Redis এর সাথে একটি .NET কোর অ্যাপ্লিকেশন তৈরি করা
এই উদাহরণে, আমরা একটি .NET কোর কনসোল অ্যাপ্লিকেশন তৈরি করব যা নিম্নলিখিত Redis অপারেশনগুলি সম্পাদন করে৷
- একটি Redis সার্ভারের সাথে সংযোগ করুন৷
- প্রাথমিক কী-মানের ক্রিয়াকলাপ সম্পাদন করুন (সেট করুন, পান, মুছুন)।
- কী মেয়াদোত্তীর্ণ এবং বৈধতা প্রদর্শন করুন।
ধাপ 1। .NET কোর প্রজেক্ট তৈরি করুন।
-
একটি টার্মিনাল খুলুন এবং একটি নতুন প্রকল্প তৈরি করুন৷
৷dotnet new RedisIntegrationDemo -
Redis সংযোগের জন্য StackExchange.Redis প্যাকেজ ইনস্টল করুন।
dotnet add package StackExchange.Redis
ধাপ 2। কোডটি লিখুন।
এখানে Program.cs.
-এ সম্পূর্ণ বাস্তবায়ন রয়েছে
using System;
using StackExchange.Redis;
using System.Threading.Tasks;
namespace RedisIntegrationDemo
{
class Program
{
// Connection string for Redis
private const string RedisConnectionString = "localhost:6379";
async static Task Main(string[] args)
{
Console.WriteLine("Connecting to Redis...");
// Connect to Redis
var redis = await ConnectionMultiplexer.ConnectAsync(RedisConnectionString);
Console.WriteLine("Connected to Redis successfully.\n");
// Access the Redis database
IDatabase db = redis.GetDatabase();
// Perform Redis operations
Console.WriteLine("Performing Redis operations...");
// 1. Set key-value pair
string key = "SampleKey";
string value = "Hello from Redis!";
await db.StringSetAsync(key, value);
Console.WriteLine($"Set: {key} => {value}");
// 2. Get the value for the key
string savedValue = await db.StringGetAsync(key);
Console.WriteLine($"Get: {key} => {savedValue}");
// 3. Set an expiration for the key
TimeSpan expiryTime = TimeSpan.FromSeconds(10);
await db.KeyExpireAsync(key, expiryTime);
Console.WriteLine($"Set expiration for {key}: {expiryTime.TotalSeconds} seconds");
// 4. Check key existence after expiration
Console.WriteLine("\nWaiting for the key to expire...");
await Task.Delay(12000); // Wait 12 seconds
bool exists = await db.KeyExistsAsync(key);
Console.WriteLine($"Key Exists After Expiration: {key} => {exists}");
// Close the connection
redis.Close();
Console.WriteLine("\nAll Redis operations completed.");
}
}
} ধাপ 3। অ্যাপ্লিকেশনটি চালান৷
৷অ্যাপ্লিকেশন চালানোর জন্য।
dotnet run প্রত্যাশিত আউটপুট
প্রোগ্রামটি Redis-এর সাথে সংযোগ করবে, মৌলিক কী-মানের ক্রিয়াকলাপ সঞ্চালন করবে এবং কী মেয়াদ শেষ হওয়ার বৈধতা দেবে। আপনি এই মত আউটপুট দেখতে হবে,

কিভাবে রেডিস .NET কোরের সাথে কাজ করে?
এখানে ধাপে ধাপে অ্যাপ্লিকেশানটি কী করে,
- ConnectionMultiplexer ব্যবহার করে Redis সার্ভারের সাথে সংযোগ করে, যা সংযোগ পুলিং এবং সার্ভার যোগাযোগ পরিচালনা করে।
- বেসিক কমান্ড সম্পাদন করে।
- StringSetAsync: Redis-এ একটি মূল-মান জোড়া সেট করে।
- StringGetAsync: একটি চাবির মান পায়।
- KeyExpireAsync: একটি কীর জন্য মেয়াদ শেষ হওয়ার সময় সেট করে।
- KeyExistsAsync: একটি কী বিদ্যমান কিনা তা পরীক্ষা করে।
- মেয়াদ শেষ হওয়ার সাথে সাথে অস্থায়ী ইন-মেমরি স্টোরেজ পরিচালনা করে।
আপনি যদি একটি উইন্ডোজ পরিবেশে কাজ করেন এবং একটি নেটিভ রেডিস ইনস্ট্যান্স ইনস্টল করতে বা ডকার ব্যবহার করতে পছন্দ করেন না, তাহলে আপনি বিকল্প হিসাবে একটি Redis-সামঞ্জস্যপূর্ণ সার্ভার ব্যবহার করতে পারেন।
একটি রেডিস-সামঞ্জস্যপূর্ণ সার্ভার সেট আপ করা
- উইন্ডোজের জন্য একটি রেডিস-সামঞ্জস্যপূর্ণ সার্ভার ইনস্টল করুন।
- একবার ইনস্টল হয়ে গেলে, সার্ভার সাধারণত লোকালহোস্টে চলে:6379 ডিফল্টরূপে, রেডিসের মতো।
- রিডিস-সামঞ্জস্যপূর্ণ সার্ভারের সাথে কাজ করার জন্য আপনার অ্যাপ্লিকেশনের কোনো কোড পরিবর্তনের প্রয়োজন নেই।
একটি Redis-সামঞ্জস্যপূর্ণ সার্ভার ব্যবহার করে Redis কার্যকারিতা কন্টেনার বা ভার্চুয়ালাইজড পরিবেশের উপর নির্ভর না করেই উইন্ডোজে নেটিভভাবে চালানোর অনুমতি দেয়।
.NET কোরে রেডিস ব্যবহারের সুবিধা
- পারফরম্যান্স: Redis সম্পূর্ণরূপে মেমরিতে কাজ করে, অত্যন্ত কম লেটেন্সি সক্ষম করে।
- ব্যবহারের সহজলভ্যতা: তালিকা, সেট এবং হ্যাশের মতো অতিরিক্ত ডেটা স্ট্রাকচার সহ সাধারণ কী-মানের প্রয়োজনের জন্য সরলীকৃত API।
- নমনীয়তা: Redis একাধিক উদ্দেশ্য (যেমন, ক্যাশিং, বার্তা সারি, পাব/সাব) পরিবেশন করে।
- মাপযোগ্যতা: রেডিস ক্লাস্টারিং এবং চাহিদার সাথে স্কেলিং করার জন্য উচ্চ প্রাপ্যতা সমর্থন করে।
উপসংহার
আপনার .NET কোর অ্যাপ্লিকেশনে Redis একত্রিত করা আপনাকে উচ্চ-মানের, পারফরম্যান্ট সিস্টেম তৈরি করতে দেয় যা চাহিদাপূর্ণ কাজের চাপ সামলাতে পারে। StackExchange.Redis লাইব্রেরির মাধ্যমে, আপনি রেডিসের সাথে নির্বিঘ্নে যোগাযোগ করতে পারেন।
সহজ ক্যাশিং বা সেশন ম্যানেজমেন্টের জন্য Redis প্রয়োগ করে শুরু করুন এবং আপনার বিতরণ করা .NET কোর অ্যাপ্লিকেশনগুলিতে পাব/সাব এবং রিয়েল-টাইম ডেটার প্রয়োজনে এর ব্যবহার প্রসারিত করুন।
শুভ কোডিং এবং স্কেলিং!