.NET এবং Redis-এর জন্য একটি সাবলীল API এবং অবজেক্ট মডেল
Redis হল একটি দুর্দান্ত প্রযুক্তি যা লক্ষ লক্ষ বিকাশকারীরা দুটি কারণে পছন্দ করে:গতি এবং সরলতা। Redis একটি স্বজ্ঞাত নেটিভ ইন্টারফেস প্রদান করে যৌক্তিকভাবে ডেটা স্ট্রাকচারে সংগঠিত যা প্রোগ্রামাররা ইতিমধ্যেই জানেন। তদুপরি, এই কাঠামোগুলি ব্যবহার করা সহজ এবং ভয়ঙ্করভাবে অপ্টিমাইজ করা হয়েছে। এটি গতি এবং সরলতার এই চূড়ান্ত সংমিশ্রণ যা আমরা .NET, Redis OM-এর জন্য একটি নতুন ক্লায়েন্ট লাইব্রেরি প্রকাশের সাথে লক্ষ্য করছি।
Redis OM .NET কি?
Redis OM হল অবজেক্ট ম্যাপিং এবং Redis এর জন্য আরও অনেক কিছু। Redis OM-এর পিছনে প্রেরণা হল এই প্রশ্নের উত্তর দেওয়া "কীভাবে বিকাশকারীরা Redis থেকে সমস্ত Redis কমান্ড না শিখে আশ্চর্যজনক সুবিধা পেতে পারে?" এই প্রথম প্রিভিউ রিলিজের জন্য, আমরা এই প্রশ্নটির সমাধান খুঁজছি, "কীভাবে আমরা Redis-এ আমাদের ডোমেন অবজেক্টগুলি সঞ্চয় এবং খুঁজে পেতে পারি?" Redis OM .NET-এর প্রিভিউ রিলিজ হল একটি অবজেক্ট ম্যাপার, একটি সেকেন্ডারি ইনডেক্স নির্মাতা এবং একটি সরলীকৃত এবং শক্তিশালী কোয়েরি নির্মাতা। রেডিস-এর সাথে আপনার ডোমেইন অবজেক্টগুলি সঞ্চয় করতে এবং খুঁজে পেতে আপনাকে সাহায্য করার জন্য এই সবই তৈরি করা হয়েছে৷
৷রেডিস মডিউল
মডিউল API Redis-এর জন্য একটি গেম পরিবর্তনকারী। Redis এর জন্য কিছু প্রয়োজনীয় বৈশিষ্ট্য প্রদান করার সময় মডিউলগুলি প্ল্যাটফর্মে প্রচুর পরিমাণে নমনীয়তা যোগ করে। RedisJSON, বিশেষ করে, প্রচুর পরিমাণে কার্যকারিতা আনলক করে, বিশেষ করে সেকেন্ডারি ইনডেক্সিং এবং ডকুমেন্ট মডেলিংয়ের আশেপাশে। Redis OM কোর Redis এর সাথে ভাল কাজ করে, Redis OM সত্যিই তার অগ্রগতি অর্জন করে যখন আপনি RedisJSON যোগ করেন, RedisJSON-এর সম্পূর্ণ সুবিধা নিয়ে বস্তুর মডেলিং এবং সেগুলিকে Redis-এ জিজ্ঞাসা করার জন্য একটি সমৃদ্ধ এবং শক্তিশালী API তৈরি করতে।
ক্ষমতা
Redis OM .NET-এর পূর্বরূপ সংস্করণে চারটি প্রাথমিক ক্ষমতা রয়েছে:
- অবজেক্ট মডেলিং
- সূচি তৈরি
- সাবলীল প্রশ্ন
- সাবলীল সমষ্টি
এটি কিভাবে কাজ করে
Redis OM এর সাথে উঠার এবং চালানোর আগে, আপনাকে আপনার প্রকল্পে প্যাকেজটি ইনস্টল করতে হবে। এটি করতে, শুধু
dotnet add package Redis.OMচালান . Redis OM লাইব্রেরির মধ্যে প্রাথমিক সংযোগ যুক্তি
RedisConnectionProvider-এ বিদ্যমান . এই প্রদানকারী তিনটি ভিন্ন বস্তুতে অ্যাক্সেস দেয় যা আপনি Redis এর সাথে যোগাযোগ করতে ব্যবহার করতে পারেন:
-
IRedisConnection
আপনাকেExecute
ব্যবহার করে রেডিসের সাথে সরাসরি ইন্টারফেস করতে দেয় এবংExecuteAsync
পদ্ধতি। - The
RedisCollection<T>
বস্তুর একটি সাধারণভাবে টাইপ করা সংগ্রহ। এই ইন্টারফেসটি সাবলীল ক্যোয়ারী API প্রদান করে। - The
RedisAggregationSet<T>
আপনাকে একটি ফ্লুয়েন্ট API ব্যবহার করে Redis-এ একত্রিত পাইপলাইন তৈরি এবং কার্যকর করতে দেয়৷
Redis-এর সাথে সংযোগ করা হচ্ছে
ASP.NET কোরে Redis OM-কে Redis-এর সাথে কানেক্ট করতে, আপনাকে
RedisConnectionProvider-এর একটি উদাহরণ ইনজেকশন করতে হবে একটি সিঙ্গলটন হিসাবে উদাহরণ. এটি করার জন্য, আপনি একটি Redis URI ব্যবহার করবেন। আপনি যদি .NET 6 ব্যবহার করেন, তাহলে এর অর্থ হল আপনার
program.csখোলা ফাইল এবং যোগ করা:
.NET 5 এর জন্য, যা Startup.cs ফাইল ব্যবহার করে, আপনি
Startup.ConfigureServices-এ নিম্নলিখিতগুলি যোগ করতে পারেন :
অবজেক্টের মডেলিং এবং অনুসন্ধান
RedisJSON আপনাকে JSON অবজেক্টগুলিকে Redis-এ স্থানীয়ভাবে সংরক্ষণ করতে এবং সেই বস্তুগুলিকে জিজ্ঞাসা করতে দেয়। কিন্তু আপনার JSON প্রশ্ন করার জন্য, আপনাকে প্রথমে আপনার সূচীগুলি সংজ্ঞায়িত করতে হবে। এই প্রক্রিয়াটিকে সহজ করার জন্য, আমরা Redis OM .NET-এ একটি ঘোষণামূলক মডেল প্রবর্তন করেছি যাতে আপনি একটি ঘোষণামূলক ইন্টারফেসের মাধ্যমে এই সূচীগুলিকে সংজ্ঞায়িত করতে পারেন৷ আপনি যদি রেডিস-এ সঞ্চয় করার জন্য একটি ক্লাস ঘোষণা করতে চান এবং এর বৈশিষ্ট্যগুলি সূচী করতে চান, তাহলে আপনি একটি
Documentদিয়ে ক্লাসটি সাজান। attribute এবং তারপর
Indexedদিয়ে স্বতন্ত্র বৈশিষ্ট্যগুলি সাজান অথবা
Searchableগুণাবলী
Indexedএকটি আদর্শ সূচক বোঝায়, যেখানে
Searchableশুধুমাত্র স্ট্রিং এর ক্ষেত্রে প্রযোজ্য এবং এর মানে হল যে সম্পত্তিটি পূর্ণ-পাঠ্য অনুসন্ধানের সাথে অনুসন্ধানযোগ্য হবে। এরপর, আপনি
IRedisConnection.CreateIndex-এ আপনার নতুন সাজানো টাইপ পাস করে Redis-এ সূচক তৈরি করতে পারেন। পদ্ধতি সুতরাং, উদাহরণস্বরূপ, আপনি যদি একটি সূচক সহ একটি গ্রাহক শ্রেণি ঘোষণা করতে চান, তাহলে আপনি নিম্নলিখিতগুলির মতো কিছু করবেন:
কোয়েরি করা হচ্ছে
একটি সূচক তৈরি করে, আপনি এখন
RedisCollection<T>ব্যবহার করতে পারেন Redis-এ বস্তুর অনুসন্ধান করতে। সুতরাং, আপনি যদি জন কে একজন গ্রাহক বস্তু হিসাবে রেডিসে সঞ্চয় করে থাকেন, তাহলে আপনি তাকে জিজ্ঞাসা করতে পারেন:
আপনি সহজেই পরিসীমা প্রশ্ন করতে পারেন. উদাহরণ স্বরূপ, অবসর গ্রহণের বয়সে পৌঁছেনি এমন সমস্ত গ্রাহকদের খুঁজে বের করা যাক:
RedisCollectionএর সাথে এবং RedisJSON, আপনি সাধারণত LINQ-এর মতো সমৃদ্ধ এবং জটিল প্রশ্ন তৈরি করতে পারেন এবং Redis OM আপনার জন্য Redis-এর ক্যোয়ারী ল্যাঙ্গুয়েজে অনুবাদ পরিচালনা করবে।
সমষ্টি
অনুসন্ধানের পাশাপাশি, আপনি একত্রিতকরণ পাইপলাইন তৈরি করতে Redis Aggregations ব্যবহার করতে পারেন যা সব ধরণের জিনিস করতে পারে। উদাহরণস্বরূপ, ধরুন আপনি 3 বছরের মধ্যে প্রতিটি গ্রাহকের বয়স খুঁজে পেতে চান, আপনি একটি
Applyএর মধ্যে একটি সরল গাণিতিক অপারেশনের মাধ্যমে তা করতে পারেন। অভিব্যক্তি, যা Redis-এ একটি সঠিকভাবে ফরম্যাট করা সমষ্টি পাইপলাইনে অনুবাদ করবে:
আপনি একসাথে রেকর্ডগুলিকে গোষ্ঠীবদ্ধ করতে পারেন এবং সেগুলির উপর সারসংক্ষেপের পরিসংখ্যান গণনা করতে পারেন৷ সুতরাং আপনি যদি গ্রাহকদের তাদের শেষ নামের দ্বারা গোষ্ঠীবদ্ধ করতে চান, তাহলে আপনি সংক্ষিপ্ত পরিসংখ্যান গণনা করতে পারেন। উদাহরণ স্বরূপ, এখানে আপনি কিভাবে গড় বয়স গণনা করতে পারেন:
র্যাপিং আপ
এটি .NET-এর জন্য Redis OM-এর ক্ষমতার একটি সংক্ষিপ্ত বিবরণ মাত্র। আপনি যদি আরও জানতে চান, আপনি টিউটোরিয়ালটি পরীক্ষা করে দেখতে পারেন এবং API ডক্সগুলি দেখতে পারেন। আমরা শীঘ্রই Redis.OM-এ আরও বৈশিষ্ট্য যুক্ত করার পরিকল্পনা করছি, এবং সেই লক্ষ্যে, আমরা কিছু সম্প্রদায়ের প্রতিক্রিয়া পছন্দ করব। আসুন এবং এটি চেষ্টা করে দেখুন। আপনি যদি কোনও সমস্যা খুঁজে পান বা লাইব্রেরিতে যোগ করা দেখতে চান এমন কিছু মনে করেন, GitHub-এ একটি সমস্যা খুলুন। এবং স্বাভাবিকভাবেই, আমরা সর্বদা সম্প্রদায়ের কাছ থেকে অবদান পছন্দ করি, তাই পিআরদের সর্বদা স্বাগত জানাই :).