রেডিস একটি ওপেন সোর্স (বিএসডি লাইসেন্সড), নোএসকিউএল ডেটাবেস। এটি একটি ইন-মেমরি ডেটাবেস, যা কী-ভ্যালু স্টোর কনসেপ্টের ওপর ভিত্তি করে তৈরি। রেডিসকে ডেটা স্ট্রাকচার স্টোর ও বলা হয়।
আসুন প্রতিটি টার্মটি একে একে বুঝি:
- কী-ভ্যালু ডেটাস্টোর: এটি একটি ডেটা স্টোরেজ প্যারাডাইম, যেখানে ডেটা একটি কী-এর বিপরীতে মান হিসেবে স্টোর ও রিট্রিভ করা হয়, যা ডেটাবেসে সংরক্ষিত মানকে অনন্যভাবে সনাক্ত করে। রেডিসকে একটি বিশাল হ্যাশ টেবিল হিসেবে বিবেচনা করা যেতে পারে।
- ইন-মেমরি ডেটাবেস: একটি ইন-মেমরি ডেটাবেস হল এমন একটি ডেটাবেস, যা সকল ডেটা প্রধান মেমরিতে (র্যাম) সংরক্ষণ করে। এর মানে যখন আপনি ডেটাবেস কোয়ারি করেন বা ডেটাবেসে ডেটা আপডেট করেন, তখন আপনি শুধু প্রধান মেমরি অ্যাক্সেস করেন। কোনো ডিস্ক অ্যাক্সেস জড়িত নেই। যেহেতু প্রধান মেমরি অ্যাক্সেস করা ডিস্ক মেমরি অ্যাক্সেস করার চেয়ে দ্রুত, রেডিস ডেটাবেস যেকোনো ডিস্ক-ভিত্তিক ডেটাবেসের চেয়ে অনেক দ্রুত। যদিও ডেটা মেমরিতে থাকাকালীন প্রপার কনফিগারেশন ব্যবহার করে ডিস্কে পারসিস্ট করা যায়।
- ডেটা স্ট্রাকচার স্টোর: রেডিসে, কী همیشه স্ট্রিং ডেটা টাইপের হয় কিন্তু মান স্ট্রিং, হ্যাশ, সেট, সর্টেড সেট, লিস্ট, হাইপারলগলগ এবং জিওস্পেশিয়াল ইনডেক্স টাইপের হতে পারে।

রেডিস একটি খুব ফ্লেক্সিবল এবং হাইলি স্কেলেবল ডেটাস্টোর, যা ডেটাবেস, মেসেজ ব্রোকার এবং ক্যাশ সার্ভার হিসেবে ব্যবহার করা যেতে পারে। এটি সিঙ্গেল-থ্রেডেড, অর্থাৎ এটি একবারে শুধু একটি রিকোয়ারেস্ট প্রসেস করতে পারে, যাইহোক ব্যাচ কমান্ড ব্যবহার করে রেডিস সার্ভারের রিকোয়ারেস্ট সংখ্যা কমানো যায়।
রেডিসে, প্রধান মেমরিতে ডেটা পারসিস্টেন্স দুটি ভিন্ন উপায়ে অর্জন করা যায়। প্রথমে সকল ডেটা একটি ফ্ল্যাট ফাইলে হার্ড ডিস্কে ডাম্প করে, এবং দ্বিতীয়ে সমস্ত এক্সিকিউট করা কমান্ডগুলো একটি ফাইলে সংরক্ষণ করে। যখন রেডিস সার্ভার বুট আপ হয়, তখন এটি হয় ডাম্প ফাইল থেকে ডেটা লোড করে অথবা সিকোয়েন্সে সকল কমান্ড এক্সিকিউট করে রেডিস সার্ভারকে কনসিস্টেন্ট এবং ব্যবহারযোগ্য স্টেটে আনে।
ফিচারসমূহ:
রেডিস ডেটাস্টোরের প্রধান ফিচারগুলো নিচে দেওয়া হল:
- অ্যাটমিক অপারেশন: সকল রেডিস অপারেশন অ্যাটমিক, যা নিশ্চিত করে যে যদি দুই বা একাধিক ক্লায়েন্ট রেডিস সার্ভারে সমকালীনভাবে CRUD অপারেশন করে, তবে সব ক্লায়েন্ট আপডেটেড মান পাবে।
- বহু ডেটা টাইপ সমর্থন: এটি স্ট্রিং, লিস্ট, সেট, সর্টেড সেট, বিটম্যাপ ইত্যাদি একাধিক ডেটা টাইপ সমর্থন করে। এটি রেডিসকে একাধিক পরিস্থিতিতে ব্যবহারযোগ্য করে তোলে।
- অত্যন্ত দ্রুত: এটি সকল ডেটা প্রধান মেমরিতে সংরক্ষণ করে, যা এটিকে অত্যন্ত দ্রুত করে তোলে। এটি কমান্ড পাইপলাইনিংও সমর্থন করে, যা ক্লায়েন্ট সিএলআই এবং ক্লায়েন্ট লাইব্রেরিগুলোকে একক কমান্ডে একাধিক মান ব্যবহার করে একাধিক অপারেশন করতে সক্ষম করে।
- ক্লায়েন্ট লাইব্রেরি সাপোর্ট: এটি সি, সি++, সি#, ক্লোজার, জাভা সহ অধিকাংশ প্রোগ্রামিং ল্যাঙ্গুয়েজ সমর্থন করে ক্লায়েন্ট লাইব্রেরির মাধ্যমে। সম্পূর্ণ তালিকা এখানে পাবেন।
- মাস্টার/স্লেভ রিপ্লিকেশন: রেডিস এক লাইন কনফিগারেশন দিয়ে মাস্টার/স্লেভ রিপ্লিকেশন সমর্থন করে।
কনসেপ্টসমূহ:
রেডিসে বিভিন্ন গুরুত্বপূর্ণ কনসেপ্ট কভার করে আর্টিকেলগুলোর তালিকা:
- কী কমান্ডসমূহ
- স্ট্রিং কমান্ডসমূহ
- লিস্ট কমান্ডসমূহ
- সেট কমান্ডসমূহ
- হ্যাশ কমান্ডসমূহ
- জিও কমান্ডসমূহ
- জেডিস লাইব্রেরি দিয়ে রেডিস কী টিউটোরিয়াল
- জেডিস লাইব্রেরি দিয়ে রেডিস লিস্ট টিউটোরিয়াল
- জেডিস লাইব্রেরি দিয়ে রেডিস সেট টিউটোরিয়াল
- জেডিস লাইব্রেরি দিয়ে রেডিস হ্যাশ টিউটোরিয়াল
- জেডিস লাইব্রেরি দিয়ে রেডিস জিও টিউটোরিয়াল
- জেডিস লাইব্রেরি দিয়ে রেডিস পাব সাব টিউটোরিয়াল
যদি আপনার ভালো লাগে, তবে মন্তব্য অংশে আপনার মতামত শেয়ার করুন এবং অন্যদেরও শেয়ার করুন।