JavaScript এবং TypeScript-এর জন্য দ্রুত এবং সহজ অবজেক্ট ম্যাপিং
আমি একটা জিনিস লিখলাম—বস্তুতঃ আমরা একাধিক জন মিলে লিখলাম—আমি শুধু Node.js ভার্সনটি লিখলাম। আমার মতে এটি একটি খুব কুল জিনিস যা আপনার দৃষ্টি আকর্ষণ করার যোগ্য, এবং আমি এর জন্য খুব এক্সাইটেড। আমি যেটি কথা বলছি সেটি হলো: Redis OM for Node.js।
Redis OM কী? Redis OM হলো একটি লাইব্রেরি যা Redis ডেটা স্ট্রাকচারগুলোকে আপনার কোডের সাথে ম্যাপ করে Redis ব্যবহারকে সহজ করে তোলে। OM বলতে অবজেক্ট ম্যাপিং-কে বোঝায়, কিন্তু ভবিষ্যতে আমরা এর চেয়েও বেশি কিছু করার পরিকল্পনা করছি।
আরো ডিটেইল জানতে পড়তে থাকুন।
দ্রুতের চেয়েও দ্রুত
আপনি সম্ভবত ইতিমধ্যেই জানেন যে Redis দ্রুত—দ্রুতের চেয়েও দ্রুত—এবং এটি আপনার প্রোগ্রামগুলোর প্রয়োজনীয় জিনিসগুলো স্টোর করে: হ্যাশ, লিস্ট, সেট, ইত্যাদি। এগুলোই वे স্ট্রাকচার जिनিসগুলো একজন প্রোগ্রামার হিসেবে আমি চিন্তা করি। যখন আমি কাউকে যিনি Redis সম্পর্কে না জানেন, তাকে ব্যাখ্যা করি, আমি বলি যে Redis হলো কলেজে আপনি যা ডেটা স্ট্রাকচার শিখেছেন সেগুলোর সাথে একটি ওয়ায়ার-প্রোটোকল যোগ করা।
মডিউলগুলো নতুন ডেটা স্ট্রাকচার যোগ করে Redis কে আরও অসাধারণ করে তোলে (হ্যাঁ, আমি জানি এটা শব্দ নয়) যেগুলো আপনার প্রোগ্রামগুলোকে যত্ন নেয়। RedisBloom প্রোবাবিলিস্টিক ডেটা স্ট্রাকচার যেমন ব্লুম এবং কুকু ফিল্টার যোগ করে। RedisGraph আপনাকে সাইফার ব্যবহার করে গ্রাফ স্টোর এবং কুয়েরি করতে দেয়। RedisAI আপনাকে টেনসর দিয়ে অসাধারণ AI কাজগুলো করতে দেয়। সব খুবই উপকারী।
সবচেয়ে অসাধারণ মডিউলগুলো
কিন্তু দুটি মডিউল বিশেষভাবে Redis কে वो পাওয়ারফুল ইন-মেমরি ডেটাবেস বানিয়ে দেয় যা প্রতিটি প্রোগ্রামার চায়: RedisJSON এবং RediSearch।
RedisJSON হায়ারার্কি টেবিলে আনে। হ্যাশ ভালো, কিন্তু যদি আপনি আপনার হ্যাশের ভিতর হ্যাশ এম্বেড করতে চান? RedisJSON আপনাকে আপনার হায়ারার্কিক্যাল ডেটা JSON ডকুমেন্ট হিসেবে স্টোর করতে দিয়ে এ সমস্যাটি সমাধান করে।
একইসাথে, RediSearch আপনাকে আপনার যত্নের ডেটা স্ট্রাকচারগুলো খুঁজে বের করতে দেয়। নিশ্চয়ই আপনি সেট ব্যবহার করে ম্যানুয়াল ইন্ডেক্স তৈরি করতে পারেন, কিন্তু সেই পদ্ধতিটি সীমাবদ্ধ এবং ম্যানুয়াল। বে। RediSearch আপনাকে কুয়েরি লিখে আপনার কাঙ্ক্ষিত ডেটার সঠিক জায়গায় যেতে দেয়।
মিলিতভাবে, RediSearch এবং RedisJSON Redis কে একটি খুব নিফটি ডকুমেন্ট ডেটাবেস বানিয়ে দেয়। আপনি যে হায়ারার্কি চান সেটি পাওয়া যায় এবং সেটির ভিতরে আপনার যেটি খুঁজছেন সেটি খুঁজে বের করার ক্ষমতা পাওয়া যায়। উভয়ের সেরা ফিচার।
বস্তুতঃ আমরা এই কম্বিনেশনটিকে এতটাই স্বাদিষ্ট মনে করি যে, আমরা এদের একসাথে রোল করে শুধু RedisJSON বলতে থাকি।
Redis OM for Node.js
RediSearch-এর কুয়েরি ল্যাঙ্গুয়েজ খুব শক্তিশালী। খুব বেশি শক্তিশালী। এটি আপনাকে Redis-এ হ্যাশ এবং JSON ডকুমেন্ট সার্চ করতে দেয় নানাভাবে এবং জটিলভাবে। এবং যখন আমার সारी শক্তি দরকার হয়, তখন এটি খুব কুল। কিন্তু কখনো কখনো আমার সारी শক্তি দরকার নয়। এবং আমি একজন আলসী ডেভেলপার—আমি চাই এটি যত সম্ভব সহজ হোক (এবং তার চেয়ে সহজ না)।
জিনিসগুলো যত সম্ভব সহজ করা হচ্ছে সেই লক্ষ্যে আমি Redis OM for Node.js লিখেছিলাম। Redis OM আপনার Node.js অ্যাপ্লিকেশনে Redis যোগ করা সহজ করে তোলে হ্যাশ এবং JSON ডকুমেন্টকে আপনার ডিফাইন করা ক্লাসগুলোর সাথে ম্যাপ করে। কোনো জটিল কমান্ড নেই, শুধু পিউর কোড একটি ফ্লুয়েন্ট ইন্টারফেসের সাথে। এক নজর দিন।
এন্টিটি ডিফাইন করুন:
নতুন এন্টিটি তৈরি করুন এবং সেভ করুন:
ম্যাচিং এন্টিটি সার্চ করুন:
এখন যেহেতু আমি এই লাইব্রেরি লিখেছি, আমি কিছু বায়সড, কিন্তু আমার মনে হয় এটি খুব ড্যাডগাম কুল! আসুন এই সিন্ট্যাক্সটি নিকট থেকে দেখি এবং শিখি কিভাবে এটি কাজ করে।
এটি কিভাবে কাজ করে
Redis OM for Node.js-এ চারটি ক্লাস রয়েছে जिनিসগুলোর জন্য আপনার যত্ন দরকার। সেগুলো হলো Entity, Schema, Client, এবং Repository।
Entities হলো সেই ক্লাসগুলো जिनিসের সাথে আপনি কাজ করবেন। সেগুলো যা তৈরি, পড়া, আপডেট এবং ডিলিট হয়। সেগুলো যা সার্চ করা হয়। Entity এক্সটেন্ড করা যেকোনো ক্লাস একটি এন্টিটি। সাধারণত, আপনি এক লাইন কোড দিয়ে একটি এন্টিটি ডিফাইন করবেন, কিন্তু আপনি সেখানে কাস্টম লজিকও যোগ করতে পারেন:
Schemas আপনার এন্টিটির ফিল্ডগুলো, তাদের টাইপ, এবং কিভাবে সেগুলো Redis-এ ইন্টারন্যালি ম্যাপ হবে সেটি ডিফাইন করে। ডিফল্টভাবে, এন্টিটি গুলো Redis-এ হ্যাশ হিসেবে ম্যাপ হয়, কিন্তু আপনি সেগুলো JSON ডকুমেন্ট হিসেবেও ম্যাপ করতে পারেন:
আপনি যখন একটি Schema তৈরি করেন, এটি আপনার দেওয়া Entity-কে মডিফাই করে, আপনার ডিফাইন করা প্রপার্টিগুলোর জন্য গেটার এবং সেটার যোগ করে। সেই গেটার এবং সেটার যা টাইপ এক্সেপ্ট এবং রিটার্ন করে সেটি উপরের টাইপ প্রপার্টি দিয়ে ডিফাইন করা হয়।
Clients আপনাকে Redis-এর সাথে কানেক্ট করে। একটি Client-এ রয়েছে open, close, এবং Redis-এ র কমান্ড এক্সিকিউট করার মেথড। আপনি অধিকাংশ সময় open এবং close ব্যবহার করবেন:
একটি Schema এবং একটি Client Repository ইনস্ট্যানশিয়েট করার জন্য প্রয়োজন। Repositories এন্টিটি পড়া, লেখা, এবং ডিলিট করার মাধ্যম প্রদান করে। এবং সেগুলো সার্চ করার মাধ্যমও:
একবার রিপোজিটরি পাওয়া যাওয়ায়, আমরা এন্টিটি তৈরি, পড়া, আপডেট, এবং ডিলিট করতে পারি। এখানে আমি আমার প্রিয় একটি অ্যালবাম Mushroomhead-এর দিয়ে সেটি করছি:
আমরা এটিও ব্যবহার করে এন্টিটি সার্চ করতে পারি:
আপনার কপি-পেস্ট সুবিধার্থে, স্যাম্পলটি এক বড় ব্লকে দেওয়া হলো:
এটিই হলো Redis OM for Node.js, যাকে বলে নাটশেলে।
শেষ কথা
এটি Redis OM for Node.js কি করতে পারে তার একটি দ্রুত ওভারভিউ ছিল। আপনি যদি আরও জানতে চান, তবে একটি টিউটোরিয়াল রয়েছে যা Redis OM দিয়ে একটি সিম্পল সার্ভিস বানাতে গাইড করবে। এবং আপনি যদি গভীরে যেতে চান, এবং আপনাকে অবশ্যই যেতে উচিত, তবে GitHub-এ README এবং API ডক্স চেক আউট করুন।
বেশ্য, এটি একটি একদম নতুন সফটওয়্যার যা এখনো রিয়েল ওয়ার্ল্ডে টেস্ট করা হয়নি। আপনি সেটি রিয়েল ওয়ার্ল্ড। দয়া করে ট্রাই করুন। টায়ার কিক করুন। ব্রেক করার চেষ্টা করুন। দেখুন কী আছে এবং কী থাকতে পারে। এবং যখন আপনি সেই বাগ খুঁজে পাবেন বা সেই পাঃফেক্ট ফিচার চিন্তা করবেন, আমাকে জানান একটি ইস্যু খুলে বা একটি পুল রিকোয়েস্ট পাঠিয়ে। Redis OM কে ভালো করার জন্য আপনার সাহায্য খুব মূল্যবান। ধন্যবাদ!