রেডিস (Redis) একটি ইন-মেমরি ডেটাবেস যা বিভিন্ন ধরনের ডেটা স্ট্রাকচার সাপোর্ট করে। রেডিসে String, List, Set, Hash, এবং Sorted Set ডেটা টাইপস রয়েছে, যা ডেটা সংরক্ষণ, ম্যানিপুলেশন, এবং প্রক্রিয়াকরণে বিভিন্ন সুবিধা প্রদান করে। নিচে প্রতিটি ডেটা টাইপের বিস্তারিত আলোচনা করা হলো।
১. String
String রেডিসের সবচেয়ে মৌলিক ডেটা টাইপ, যা কেবল একটি সিঙ্গেল ভ্যালু (যেমন টেক্সট বা সংখ্যা) সংরক্ষণ করতে ব্যবহৃত হয়।
- অথবা: একটি কিপেয়ার-ভ্যালু পেয়ার হিসেবে একটি একক স্ট্রিং ডেটা সংরক্ষণ।
- কমান্ড উদাহরণ:
SET: একটি নতুন কিপেয়ার তৈরি বা আপডেট করতে:
SET mykey "Hello Redis"GET: একটি কিপেয়ার থেকে মান রিটার্ন করতে:
GET mykey
- ব্যবহার:
- ক্যাশিং: সাধারণত ক্যাশে হিসেবে ব্যবহৃত হয়।
- নাম/টেক্সট সংরক্ষণ: ব্যবহারকারী নাম বা অন্যান্য ছোট ডেটা সংরক্ষণের জন্য।
২. List
List একটি সিরিয়াল আর্ডারড কালেকশন যা স্ট্রিংয়ের একটি অ্যারে। এতে ডুপ্লিকেট ভ্যালু থাকতে পারে এবং আপনি ডেটা প্রথমে (লেফট) বা শেষে (রাইট) অ্যাড করতে পারেন।
- কমান্ড উদাহরণ:
LPUSH: লিস্টের শুরুতে একটি এলিমেন্ট যোগ করা:
LPUSH mylist "First Element"RPUSH: লিস্টের শেষে একটি এলিমেন্ট যোগ করা:
RPUSH mylist "Second Element"LRANGE: একটি নির্দিষ্ট রেঞ্জে এলিমেন্ট দেখানো:
LRANGE mylist 0 -1 # প্রথম থেকে শেষ পর্যন্ত সব এলিমেন্ট দেখাবে
- ব্যবহার:
- কিউ বা স্ট্যাক: FIFO (First In First Out) বা LIFO (Last In First Out) স্টোরেজ হিসাবে ব্যবহার করা যায়।
- টাস্ক কিউ: অ্যাসিনক্রোনাস কাজ বা টাস্কের জন্য।
৩. Set
Set হল অর্ডারবিহীন ইউনিক (অদ্বিতীয়) এলিমেন্টগুলির একটি কালেকশন। এখানে কোনো ডুপ্লিকেট ভ্যালু থাকতে পারে না। এটি সাধারণত ইউনিক আইটেম ট্র্যাক করার জন্য ব্যবহৃত হয়।
- কমান্ড উদাহরণ:
SADD: একটি নতুন এলিমেন্ট সেটে যোগ করা:
SADD myset "apple"SMEMBERS: সেটের সব এলিমেন্ট দেখা:
SMEMBERS mysetSREM: একটি এলিমেন্ট সেট থেকে মুছে ফেলা:
SREM myset "apple"
- ব্যবহার:
- ইউনিক আইটেম ট্র্যাকিং: যেমন ব্যবহারকারী আইডি বা ট্যাগ।
- ম্যাচিং এলিমেন্ট: ডুপ্লিকেট বা একই আইটেম নির্ধারণ।
৪. Hash
Hash ডেটা টাইপটি একটি কিপেয়ার-ভ্যালু পেয়ার হিসেবে কাজ করে, তবে এটি একটি কমপ্লেক্স ডেটা স্ট্রাকচার যা একটি কিপোরের মধ্যে একাধিক ভ্যালু সংরক্ষণ করতে সক্ষম।
- কমান্ড উদাহরণ:
HSET: হ্যাশের মধ্যে একটি নতুন কিপে-ভ্যালু পেয়ার যোগ করা:
HSET user:1 name "John" age 30HGET: হ্যাশ থেকে একটি নির্দিষ্ট ফিল্ডের মান পড়া:
HGET user:1 nameHGETALL: হ্যাশের সব কিপেয়ার-ভ্যালু দেখানো:
HGETALL user:1
- ব্যবহার:
- অবজেক্ট স্টোরেজ: যেমন ব্যবহারকারীর প্রোফাইল ইনফরমেশন (নাম, বয়স, ইমেইল)।
- কনফিগ ফাইলস: অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস সংরক্ষণ।
৫. Sorted Set
Sorted Set হল একটি সেট যেখানে প্রতিটি এলিমেন্টের সাথে একটি স্কোর যুক্ত থাকে এবং এই স্কোরের ভিত্তিতে এলিমেন্টগুলি অর্ডার করা থাকে। এতে ডুপ্লিকেট এলিমেন্ট থাকতে পারে না, তবে প্রতিটি এলিমেন্টের স্কোর ইউনিক হতে হবে।
- কমান্ড উদাহরণ:
ZADD: একটি নতুন এলিমেন্ট যোগ করা এবং স্কোর নির্ধারণ:
ZADD leaderboard 100 "Player1"ZRANGE: একটি নির্দিষ্ট স্কোর রেঞ্জের এলিমেন্ট বের করা:
ZRANGE leaderboard 0 -1 WITHSCORESZREM: একটি এলিমেন্ট সরানো:
ZREM leaderboard "Player1"
- ব্যবহার:
- লিডারবোর্ড: গেমের র্যাংকিং সিস্টেম তৈরি করতে।
- ট্রেন্ডিং টপিকস: সোশ্যাল মিডিয়া বা নিউজ অ্যাপ্লিকেশনের ট্রেন্ডিং টপিকস।
সারাংশ
রেডিসের পাঁচটি প্রধান ডেটা টাইপ হলো:
- String: একক মান সংরক্ষণ।
- List: অর্ডারড এবং ডুপ্লিকেট সহ তালিকা।
- Set: অর্ডারবিহীন, ইউনিক আইটেমের কালেকশন।
- Hash: কিপেয়ার-ভ্যালু পেয়ার, কমপ্লেক্স ডেটা সংরক্ষণ।
- Sorted Set: অর্ডারড সেট যেখানে প্রতিটি এলিমেন্টের স্কোর থাকে।
প্রতিটি ডেটা টাইপের নিজস্ব সুবিধা এবং ব্যবহার ক্ষেত্র রয়েছে, যা বিভিন্ন অ্যাপ্লিকেশন এবং পরিস্থিতিতে অত্যন্ত কার্যকর।
Read more