Complex ডেটা স্ট্রাকচার সংরক্ষণ করা

Hashes এবং Sorted Sets - রেডিস (Redis) - Database Tutorials

338

রেডিস একটি ইন-মেমরি ডেটাবেস এবং এটি বিভিন্ন ধরনের ডেটা স্ট্রাকচার সাপোর্ট করে, যেমন স্ট্রিং, লিস্ট, সেট, সোর্টেড সেট, হ্যাশ এবং আরো অনেক। এটি কমপ্লেক্স ডেটা স্ট্রাকচার সংরক্ষণ করতে খুবই উপযুক্ত এবং শক্তিশালী। এখানে রেডিসে কমপ্লেক্স ডেটা স্ট্রাকচার সংরক্ষণ করার কিছু পদ্ধতি আলোচনা করা হয়েছে।


১. হ্যাশ (Hash)

রেডিসের হ্যাশ একটি কিপেয়ার-ভ্যালু সংগ্রহের মতো কাজ করে, যেখানে প্রতিটি কিপেয়ারের মান আবার একাধিক কিপেয়ার-ভ্যালু (ফিল্ড-ভ্যালু) ধারণ করতে পারে। এটি এমন ডেটা সংরক্ষণে ব্যবহৃত হয় যেখানে প্রতিটি রেকর্ডের ভ্যালু গুলি কিপেয়ার-ভ্যালু পেয়ার আকারে থাকে, যেমন ব্যবহারকারীর প্রোফাইল, পণ্য তথ্য ইত্যাদি।

উদাহরণ:

HSET ব্যবহার করে হ্যাশের মধ্যে ডেটা সংরক্ষণ:

HSET user:1000 name "John Doe" age 30 country "USA"
HSET user:1001 name "Jane Smith" age 25 country "UK"

HGET ব্যবহার করে হ্যাশ থেকে ভ্যালু পাওয়া:

HGET user:1000 name   # "John Doe"
HGET user:1001 age    # "25"

HGETALL ব্যবহার করে হ্যাশের সব ফিল্ড এবং ভ্যালু দেখানো:

HGETALL user:1000

২. লিস্ট (List)

রেডিসের লিস্ট একটি অর্ডার্ড সিকোয়েন্সে উপাদান সংরক্ষণ করে। এটি একটি ডাবল লিঙ্কড লিস্ট হিসেবে কাজ করে এবং এটির মধ্যে ডেটা ইনসার্ট, রিট্রিভ এবং রিমুভ করা খুব সহজ।

উদাহরণ:

LPUSH ব্যবহার করে লিস্টে ডেটা যোগ করা:

LPUSH tasks "Finish homework"
LPUSH tasks "Read a book"
LPUSH tasks "Go for a run"

LRANGE ব্যবহার করে লিস্টের এলিমেন্ট দেখানো:

LRANGE tasks 0 -1  # এটি পুরো লিস্ট দেখাবে

RPOP ব্যবহার করে লিস্ট থেকে ডেটা মুছে ফেলা:

RPOP tasks  # এটি লিস্টের শেষ এলিমেন্ট মুছে ফেলবে

৩. সেট (Set)

রেডিসের সেট একটি অর্ডারবিহীন সংগ্রহ যা ইউনিক (unique) উপাদান ধারণ করে। এটি ডুপ্লিকেট মান অনুমোদন করে না এবং গাণিতিক সেট অপারেশন সাপোর্ট করে, যেমন UNION, INTERSECTION, এবং DIFFERENCE

উদাহরণ:

SADD ব্যবহার করে সেটে ডেটা যোগ করা:

SADD fruits "apple" "banana" "orange" "apple"  # apple এখানে ডুপ্লিকেট হিসেবে গ্রহণ হবে না

SMEMBERS ব্যবহার করে সেটের সমস্ত এলিমেন্ট দেখা:

SMEMBERS fruits

SREM ব্যবহার করে সেট থেকে এলিমেন্ট মুছে ফেলা:

SREM fruits "banana"

৪. সোর্টেড সেট (Sorted Set)

রেডিসের সোর্টেড সেট সাধারণ সেটের মতো কাজ করে তবে প্রতিটি উপাদান একটি স্কোর (score) সহ থাকে, যা উপাদানগুলোকে অর্ডার করার জন্য ব্যবহৃত হয়। এটি ব্যবহৃত হয় যখন আপনি র‍্যাংকিং বা পদবী ব্যবস্থা করতে চান।

উদাহরণ:

ZADD ব্যবহার করে সোর্টেড সেটে ডেটা যোগ করা:

ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Charlie"

ZRANGE ব্যবহার করে সортেড সেট থেকে উপাদান বের করা:

ZRANGE leaderboard 0 -1 WITHSCORES  # এটি স্কোর সহ সমস্ত এলিমেন্ট দেখাবে

ZREM ব্যবহার করে সোর্টেড সেট থেকে এলিমেন্ট মুছে ফেলা:

ZREM leaderboard "Charlie"

৫. স্ট্রিং (String)

রেডিসের স্ট্রিং সবচেয়ে মৌলিক ডেটা স্ট্রাকচার, যা সাধারণত ছোট তথ্য সংরক্ষণ করতে ব্যবহৃত হয়, যেমন টেক্সট, সংখ্যা, বা ফাইল।

উদাহরণ:

SET এবং GET ব্যবহার করে স্ট্রিং ডেটা সেট এবং পেতে:

SET user:1000:name "John"
GET user:1000:name  # এটি "John" রিটার্ন করবে

৬. বিটম্যাপ (Bitmap)

রেডিসের বিটম্যাপ ব্যবহার করা হয় বাইনারি ডেটা সংরক্ষণ এবং পরিচালনা করার জন্য। এটি কিছু নির্দিষ্ট পজিশনগুলোর মান ১ বা ০ হিসেবে নির্ধারণ করতে সহায়ক।

উদাহরণ:

SETBIT ব্যবহার করে বিটম্যাপে ডেটা সেট করা:

SETBIT user:1000:status 0 1  # পজিশন 0-এ 1 সেট করা হবে

GETBIT ব্যবহার করে বিটম্যাপ থেকে ডেটা পড়া:

GETBIT user:1000:status 0  # এটি 1 রিটার্ন করবে

৭. স্ট্রিম (Stream)

রেডিসের স্ট্রিম ডেটা স্ট্রাকচার ব্যবহার করা হয় রিয়েল-টাইম ডেটা প্রবাহ (data flow) পরিচালনা করতে। এটি বিশেষভাবে মেসেজ ব্রোকার সিস্টেমে ব্যবহৃত হয়।

উদাহরণ:

XADD ব্যবহার করে স্ট্রিমে ডেটা যোগ করা:

XADD mystream * sensor-id 1234 temperature 25

XREAD ব্যবহার করে স্ট্রিম থেকে ডেটা পড়া:

XREAD COUNT 2 STREAMS mystream 0

সারাংশ

রেডিস বিভিন্ন ধরনের কমপ্লেক্স ডেটা স্ট্রাকচার যেমন হ্যাশ, লিস্ট, সেট, সোর্টেড সেট, বিটম্যাপ, স্ট্রিম সাপোর্ট করে। এই ডেটা স্ট্রাকচারগুলো ব্যবহার করে আপনি বিভিন্ন ধরনের ডেটা ম্যানিপুলেশন এবং স্টোরেজ অপারেশন সম্পন্ন করতে পারেন, যেমন ডেটা যোগ, আপডেট, মুছে ফেলা, র‍্যাংকিং, মেসেজ ব্রোকারিং ইত্যাদি।

Content added By
Promotion

Are you sure to start over?

Loading...