Skill

Hashes এবং Sorted Sets গাইড ও নোট

Database Tutorials - রেডিস (Redis)
370

হ্যাশেস (Hashes) এবং সোর্টেড সেটস (Sorted Sets) হল রেডিসের ডেটা স্ট্রাকচার যা বিশেষ উদ্দেশ্যে ব্যবহৃত হয়। এই ডেটা স্ট্রাকচারগুলো দ্রুত এবং কার্যকরী ডেটা ম্যানিপুলেশন করতে সাহায্য করে।


১. হ্যাশেস (Hashes)

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

হ্যাশের বৈশিষ্ট্য:

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

কিছু হ্যাশ কমান্ড:

  • HSET: হ্যাশে একটি ফিল্ড এবং ভ্যালু সেট করা।

    HSET user:1 name "John Doe" age 30 email "john@example.com"
    
  • HGET: একটি নির্দিষ্ট ফিল্ডের ভ্যালু পাওয়া।

    HGET user:1 name
    
  • HGETALL: হ্যাশের সব ফিল্ড এবং তাদের ভ্যালু পাওয়া।

    HGETALL user:1
    
  • HDEL: একটি নির্দিষ্ট ফিল্ড মুছে ফেলা।

    HDEL user:1 age
    
  • HEXISTS: একটি ফিল্ড হ্যাশে আছে কিনা চেক করা।

    HEXISTS user:1 email
    
  • HINCRBY: ফিল্ডের মান ইনক্রিমেন্ট করা (সর্বোত্তমভাবে সংখ্যার জন্য)।

    HINCRBY user:1 age 1
    

হ্যাশের ব্যবহার:

ধরা যাক, একটি অ্যাপ্লিকেশনে ব্যবহারকারীদের তথ্য সংরক্ষণ করতে হবে। এর জন্য আপনি হ্যাশ ব্যবহার করতে পারেন:

HSET user:1234 name "Alice" email "alice@example.com" age 25

এটি একটি ব্যবহারকারীর নাম, ইমেইল এবং বয়স সংরক্ষণ করবে একটি একক কিপেয়ারে। এরপর আপনি যেকোনো ফিল্ডের মান পেতে পারেন, যেমন:

HGET user:1234 name

২. সোর্টেড সেটস (Sorted Sets)

সোর্টেড সেট (Sorted Set) হল একটি সেট যা প্রতিটি আইটেমের সাথে একটি স্কোর যুক্ত থাকে, এবং এটি আইটেমগুলোকে স্কোরের ভিত্তিতে অটোমেটিকভাবে সজ্জিত করে। এতে কোনো পুনরাবৃত্তি (duplicate) আইটেম থাকতে পারে না এবং সমস্ত আইটেম তাদের স্কোর অনুসারে সজ্জিত থাকে।

সোর্টেড সেটের বৈশিষ্ট্য:

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

কিছু সোর্টেড সেট কমান্ড:

  • ZADD: সোর্টেড সেটে একটি আইটেম এবং তার স্কোর যোগ করা।

    ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Charlie"
    
  • ZRANGE: স্কোরের ভিত্তিতে সজ্জিত সোর্টেড সেট থেকে নির্দিষ্ট রেঞ্জের আইটেম পাওয়া।

    ZRANGE leaderboard 0 -1  # সমস্ত আইটেম স্কোর অনুসারে
    
  • ZREVRANGE: স্কোরের ভিত্তিতে সজ্জিত সোর্টেড সেট থেকে উল্টো রেঞ্জের আইটেম পাওয়া।

    ZREVRANGE leaderboard 0 -1  # উল্টো অর্ডারে
    
  • ZREM: সোর্টেড সেট থেকে একটি আইটেম মুছে ফেলা।

    ZREM leaderboard "Alice"
    
  • ZINCRBY: স্কোর বৃদ্ধি করা।

    ZINCRBY leaderboard 10 "Charlie"
    
  • ZCARD: সোর্টেড সেটের সংখ্যা পাওয়া।

    ZCARD leaderboard
    

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

ধরা যাক, একটি গেমের লিডারবোর্ড ট্র্যাক করা হচ্ছে, যেখানে খেলোয়াড়দের স্কোর রেকর্ড করা হবে। এখানে সোর্টেড সেট ব্যবহৃত হতে পারে:

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

এখন, আপনি লিডারবোর্ড দেখতে পারেন:

ZRANGE leaderboard 0 -1

এটি স্কোর অনুসারে নামগুলো সজ্জিত করবে:

1) "Alice"
2) "Charlie"
3) "Bob"

সারাংশ

  • হ্যাশেস (Hashes): রেডিসে একটি ডেটার ছোট ইউনিটগুলোর জন্য ব্যবহৃত হয়, যেখানে ফিল্ড এবং ভ্যালুর আকারে তথ্য সংরক্ষণ করা হয়। এটি ব্যবহারকারীর তথ্য, প্রোফাইল, অথবা অন্য সম্পর্কিত ডেটা সংরক্ষণের জন্য আদর্শ।
  • সোর্টেড সেটস (Sorted Sets): সোটেড সেট এমন একটি ডেটা স্ট্রাকচার যা আইটেমগুলোকে স্কোরের ভিত্তিতে সজ্জিত করে এবং এটি মূলত র‍্যাঙ্কিং, লিডারবোর্ড বা স্কোর ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়।
Content added By

Redis তে Hashes এর ব্যবহার (HSET, HGET, HDEL, HGETALL)

384

রেডিস (Redis) তে Hashes একটি শক্তিশালী ডেটা স্ট্রাকচার যা কিপেয়ার-ভ্যালু পেয়ার ধারণ করে। এটি সাধারণত ছোট ডেটা অবজেক্ট বা প্রপার্টি-ভ্যালু পেয়ার ম্যানেজ করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, একজন ব্যবহারকারীর নাম, ইমেইল এবং বয়স একটি hash-এ সংরক্ষিত হতে পারে।

নিচে Hashes এর সাথে সম্পর্কিত কিছু জনপ্রিয় কমান্ডের ব্যবহার আলোচনা করা হলো:


১. HSET - Hash সেট করা

HSET কমান্ড ব্যবহার করে একটি hash ফিল্ডে নতুন মান সেট করা হয়। যদি ফিল্ডটি আগে থেকেই উপস্থিত থাকে, তবে তার মান আপডেট হয়।

সিনট্যাক্স:

HSET <hash_name> <field> <value>

উদাহরণ:

HSET user:1000 name "John Doe" age 30 email "john@example.com"

এটি user:1000 নামক hash-এ তিনটি ফিল্ড (name, age, email) যুক্ত করবে।


২. HGET - Hash থেকে ফিল্ডের মান পাওয়া

HGET কমান্ড ব্যবহার করে আপনি একটি নির্দিষ্ট ফিল্ডের মান প্রাপ্তি করতে পারেন।

সিনট্যাক্স:

HGET <hash_name> <field>

উদাহরণ:

HGET user:1000 name

এই কমান্ডটি user:1000 hash থেকে name ফিল্ডের মান ("John Doe") ফেরত দিবে।


৩. HDEL - Hash থেকে ফিল্ড মুছে ফেলা

HDEL কমান্ড ব্যবহার করে একটি hash থেকে একটি বা একাধিক ফিল্ড মুছে ফেলা যায়।

সিনট্যাক্স:

HDEL <hash_name> <field1> <field2> ...

উদাহরণ:

HDEL user:1000 age

এই কমান্ডটি user:1000 hash থেকে age ফিল্ডটি মুছে ফেলবে।


৪. HGETALL - Hash থেকে সমস্ত ফিল্ড এবং মান পাওয়া

HGETALL কমান্ড ব্যবহার করে আপনি একটি hash-এর সমস্ত ফিল্ড এবং তাদের মান একসাথে পেতে পারেন।

সিনট্যাক্স:

HGETALL <hash_name>

উদাহরণ:

HGETALL user:1000

এই কমান্ডটি user:1000 hash-এর সমস্ত ফিল্ড এবং তাদের মান প্রদান করবে:

1) "name"
2) "John Doe"
3) "age"
4) "30"
5) "email"
6) "john@example.com"

সারাংশ

  • HSET: একটি hash-এ নতুন ফিল্ড এবং মান সেট করে।
  • HGET: একটি hash থেকে একটি নির্দিষ্ট ফিল্ডের মান প্রাপ্তি করে।
  • HDEL: একটি hash থেকে ফিল্ড মুছে ফেলে।
  • HGETALL: একটি hash থেকে সমস্ত ফিল্ড এবং মান প্রাপ্তি করে।

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

Content added By

Sorted Sets (ZADD, ZRANGE, ZREM, ZSCORE)

294

Sorted Sets (যাকে সাধারণত ZSET বলা হয়) হল রেডিসের একটি ডেটা স্ট্রাকচার, যেখানে প্রতিটি এলিমেন্ট একটি কী এবং তার সাথে একটি স্কোর (numerical value) যুক্ত থাকে। এলিমেন্টগুলি তাদের স্কোর অনুসারে সাজানো থাকে, এবং আপনি এগুলোর মধ্যে বিভিন্ন ধরনের অপারেশন যেমন ZADD, ZRANGE, ZREM, এবং ZSCORE করতে পারেন।

Sorted Set-এ ডেটা সংরক্ষণ করা হয় স্কোর অনুযায়ী সজ্জিত অবস্থায়, যেখানে স্কোর হল একটি ফ্লোট মান এবং এলিমেন্ট হল একটি স্ট্রিং। ZSET-এর সুবিধা হল এটি এলিমেন্টগুলিকে দ্রুত অনুসন্ধান, যোগ করা এবং মুছে ফেলা যায় স্কোর অনুযায়ী।


Sorted Sets-এ কিছু প্রধান কমান্ড এবং তাদের ব্যাখ্যা

1. ZADD (Sorted Set-এ নতুন এলিমেন্ট যোগ করা)

ZADD কমান্ড ব্যবহার করে আপনি একটি Sorted Set-এ নতুন এলিমেন্ট যোগ করতে পারেন এবং তার সাথে একটি স্কোর সেট করতে পারেন।

সিনট্যাক্স:

ZADD <key> <score> <member> [<score> <member> ...]

উদাহরণ:

ZADD leaderboard 10 "Alice" 20 "Bob" 15 "Charlie"

এখানে leaderboard হলো Sorted Set-এর কী, এবং "Alice", "Bob", "Charlie" হলো এলিমেন্ট, তাদের স্কোর যথাক্রমে 10, 20, এবং 15।


2. ZRANGE (Sorted Set থেকে এলিমেন্ট রেঞ্জ আনা)

ZRANGE কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে নির্দিষ্ট রেঞ্জের এলিমেন্ট সংগ্রহ করতে পারেন। রেঞ্জটি স্কোর বা ইনডেক্স অনুযায়ী হতে পারে।

সিনট্যাক্স:

ZRANGE <key> <start> <stop> [WITHSCORES]

উদাহরণ:

ZRANGE leaderboard 0 -1 WITHSCORES

এটি leaderboard Sorted Set-এর সব এলিমেন্টকে স্কোরসহ প্রদর্শন করবে, যেখানে 0 থেকে -1 (পুরো রেঞ্জ) উল্লেখ করা হয়েছে।

আউটপুট:

1) "Alice"
2) "10"
3) "Charlie"
4) "15"
5) "Bob"
6) "20"

WITHSCORES অপশনটি ব্যবহার করলে স্কোরের সাথে এলিমেন্টগুলোও দেখানো হয়।


3. ZREM (Sorted Set থেকে এলিমেন্ট মুছে ফেলা)

ZREM কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে এক বা একাধিক এলিমেন্ট মুছে ফেলতে পারেন।

সিনট্যাক্স:

ZREM <key> <member> [<member> ...]

উদাহরণ:

ZREM leaderboard "Alice" "Charlie"

এটি leaderboard Sorted Set থেকে "Alice" এবং "Charlie" নামক এলিমেন্টগুলো মুছে ফেলবে।


4. ZSCORE (Sorted Set থেকে একটি এলিমেন্টের স্কোর পাওয়া)

ZSCORE কমান্ড ব্যবহার করে আপনি একটি Sorted Set থেকে কোনো নির্দিষ্ট এলিমেন্টের স্কোর পেতে পারেন।

সিনট্যাক্স:

ZSCORE <key> <member>

উদাহরণ:

ZSCORE leaderboard "Bob"

এটি "Bob" এলিমেন্টের স্কোর প্রদান করবে, যেমন 20


Sorted Set-এর অন্যান্য গুরুত্বপূর্ণ ফিচার

  1. ZINCRBY: ZINCRBY কমান্ড ব্যবহার করে কোনো এলিমেন্টের স্কোর বাড়ানো যেতে পারে।

    ZINCRBY leaderboard 5 "Alice"
    

    এটি "Alice" এর স্কোর 5 বাড়িয়ে দেবে।

  2. ZRANGEBYSCORE: ZRANGEBYSCORE কমান্ড ব্যবহার করে আপনি নির্দিষ্ট স্কোর রেঞ্জের মধ্যে থাকা এলিমেন্টগুলো পেতে পারেন।

    ZRANGEBYSCORE leaderboard 10 20
    

    এটি 10 থেকে 20 স্কোরের মধ্যে থাকা সব এলিমেন্ট রিটার্ন করবে।

  3. ZREVRANGE: ZREVRANGE কমান্ড দিয়ে আপনি সর্বোচ্চ স্কোর থেকে সর্বনিম্ন স্কোর পর্যন্ত এলিমেন্টগুলো পেতে পারেন।

    ZREVRANGE leaderboard 0 -1 WITHSCORES
    

    এটি এলিমেন্টগুলো রিভার্স অর্ডারে (ডিসেন্ডিং অর্ডারে) সাজিয়ে প্রদর্শন করবে।


সারাংশ

Sorted Set একটি শক্তিশালী ডেটা স্ট্রাকচার, যেখানে প্রতিটি এলিমেন্টের সাথে একটি স্কোর যুক্ত থাকে এবং এই স্কোর অনুসারে এলিমেন্টগুলি সাজানো থাকে। রেডিসের ZADD, ZRANGE, ZREM, এবং ZSCORE কমান্ডের মাধ্যমে আপনি Sorted Set-এ এলিমেন্ট যোগ করা, এলিমেন্টের স্কোর অনুযায়ী রেঞ্জ পাওয়া, এলিমেন্ট মুছে ফেলা এবং স্কোর অনুসন্ধান করতে পারেন। Sorted Set র‍্যাঙ্কিং সিস্টেম, লিডারবোর্ড, রেটিং সিস্টেম এবং আরও অনেক ধরনের প্রয়োগের জন্য ব্যবহার করা হয়।

Content added By

Hashes এবং Sorted Sets এর মধ্যে পার্থক্য

329

Hashes এবং Sorted Sets রেডিসের দুটি জনপ্রিয় ডেটা টাইপ, তবে তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে। নিচে এই দুটি ডেটা টাইপের মধ্যে পার্থক্য আলোচনা করা হলো:


১. ডেটা স্ট্রাকচার

  • Hashes:
    • Hashes হল কিপেয়ার-ভ্যালু পেয়ারগুলির একটি সংগ্রহ। এটি একটি কমপ্লেক্স ডেটা স্ট্রাকচার যা একটি কিপোরে একাধিক ফিল্ড (key-value pairs) রাখতে পারে। প্রতিটি ফিল্ডের মান (value) সাধারণত স্ট্রিং হতে পারে, তবে এটি অন্য ডেটা টাইপও হতে পারে।
    • উদাহরণ: একটি ইউজারের প্রোফাইল তথ্য (নাম, বয়স, ইমেইল) একসাথে সংরক্ষণ করা।
    • উদাহরণ:

      HSET user:1 name "John" age 30 email "john@example.com"
      
  • Sorted Sets:
    • Sorted Sets একটি সেটের মতোই, তবে এতে প্রতিটি এলিমেন্টের সাথে একটি স্কোর (score) যুক্ত থাকে এবং এই স্কোরের ভিত্তিতে এলিমেন্টগুলি অর্ডার করা থাকে। এটি এলিমেন্টগুলিকে স্কোর অনুযায়ী সাজিয়ে রাখে, অর্থাৎ আপনাকে এলিমেন্টগুলো সাজানোর জন্য আলাদা করে লজিক লিখতে হয় না।
    • উদাহরণ: একটি গেমের লিডারবোর্ড যেখানে প্রতিটি খেলোয়াড়ের স্কোর রয়েছে এবং তার উপর ভিত্তি করে র‌্যাংকিং করা হচ্ছে।
    • উদাহরণ:

      ZADD leaderboard 100 "Player1" 200 "Player2"
      

২. স্কোর এবং অর্ডারিং

  • Hashes:
    • Hashes-এ কোনো স্কোর বা অর্ডারিং থাকে না। এখানে কিপোর মধ্যে সংরক্ষিত ভ্যালুগুলি যেভাবে রাখা হয়, সেভাবেই সেটি থাকবে। এটি সাধারণত একটি key-value pair সংগ্রহ হিসেবে কাজ করে।
  • Sorted Sets:
    • Sorted Sets-এ প্রতিটি এলিমেন্টের একটি স্কোর থাকে। এই স্কোরের ভিত্তিতে এলিমেন্টগুলিকে অর্ডার করা হয়। উচ্চ স্কোর সম্পন্ন এলিমেন্টগুলো আগে থাকবে। এটি লিনিয়ার অর্ডারিং বা স্কোরের ভিত্তিতে র‌্যাংকিং নিশ্চিত করে।

৩. ডুপ্লিকেট এলিমেন্ট

  • Hashes:
    • Hashes-এ কিপোরের মধ্যে একাধিক ফিল্ড থাকতে পারে, কিন্তু প্রতিটি ফিল্ডের নাম (key) ইউনিক হতে হবে। একই কিপোরে একাধিক এক্সাক্ট ফিল্ড থাকতে পারে না।
  • Sorted Sets:
    • Sorted Sets-এ এলিমেন্টের স্কোর ইউনিক হতে হবে, তবে ডুপ্লিকেট স্কোর থাকতে পারে, যার ফলে একাধিক এলিমেন্ট একই স্কোরের সাথে থাকতে পারে। তবে, স্কোরের পাশাপাশি এলিমেন্টের নাম (member) ইউনিক হতে হবে।

৪. অ্যাক্সেস এবং ব্যবহার

  • Hashes:
    • Hashes সাধারণত ছোট ফিল্ডগুলির জন্য ব্যবহৃত হয়, যেমন একাধিক সম্পর্কিত ভ্যালু সংরক্ষণ, যেখানে প্রতিটি ফিল্ডে একটি কিপোর মান থাকে। এটি অ্যাপ্লিকেশনের ভেতরে অবজেক্টের মতো কাজ করতে পারে।
    • উদাহরণ: ব্যবহারকারীর প্রোফাইল বা কনফিগ সেটিংস
  • Sorted Sets:
    • Sorted Sets সাধারণত সেগুলোর জন্য ব্যবহৃত হয় যেখানে এলিমেন্টগুলোর অর্ডার বা স্কোর গুরুত্বপূর্ণ, যেমন লিডারবোর্ড, র‌্যাংকিং সিস্টেম, বা সময় অনুসারে ডেটা সংরক্ষণ।
    • উদাহরণ: গেম লিডারবোর্ড, প্রোডাক্ট রিভিউ, ট্রেন্ডিং টপিকস

৫. সাধারণ অপারেশন এবং ব্যবহারের ক্ষেত্র

  • Hashes:
    • ফিল্ডের মধ্যে একাধিক কিপেয়ার-ভ্যালু পেয়ার সংরক্ষণ করা। এগুলোর মধ্যে আপনি নির্দিষ্ট ফিল্ডের মান পড়তে পারেন এবং আপডেট করতে পারেন।
    • ব্যবহার: ব্যবহারকারীর প্রোফাইল, কনফিগ সেটিংস, অবজেক্ট স্টোরেজ
    • কমান্ড উদাহরণ:

      HSET user:1 name "John"
      HGET user:1 name
      
  • Sorted Sets:
    • এলিমেন্টগুলো স্কোরের ভিত্তিতে সাজানো থাকে। এটি একটি এলিমেন্টের স্কোর আপডেট করতে, অথবা স্কোর অনুযায়ী এলিমেন্টগুলোকে রেঙ্ক করতে ব্যবহৃত হয়।
    • ব্যবহার: লিডারবোর্ড, ট্রেন্ডিং টপিকস, টাইমস্ট্যাম্প অনুযায়ী সঞ্চিত ডেটা
    • কমান্ড উদাহরণ:

      ZADD leaderboard 100 "Player1" 200 "Player2"
      ZRANGE leaderboard 0 -1 WITHSCORES
      

৬. পারফরম্যান্স

  • Hashes:
    • Hashes খুব কম মেমরি ব্যবহার করে এবং দ্রুত এক্সেস প্রদান করে যদি আপনি ফিল্ডভিত্তিক অ্যাক্সেস করতে চান।
  • Sorted Sets:
    • Sorted Sets তুলনামূলকভাবে একটু বেশি মেমরি ব্যবহার করতে পারে, কারণ স্কোরের ভিত্তিতে এলিমেন্টগুলো সাজানো থাকে এবং এটি রেঙ্কিং বা সার্চিংয়ের জন্য আরো জটিল অপারেশনসমূহ প্রয়োজন হতে পারে।

সারাংশ

বৈশিষ্ট্যHashesSorted Sets
ডেটা স্ট্রাকচারকিপেয়ার-ভ্যালু পেয়ার (multiple fields)অর্ডারড এলিমেন্ট (ডুপ্লিকেট স্কোর হতে পারে)
অর্ডারিংকোনো অর্ডার থাকে নাস্কোর অনুযায়ী অর্ডার
ডুপ্লিকেট এলিমেন্টকিপোর মধ্যে একাধিক ফিল্ড থাকতে পারেস্কোরের সাথে ডুপ্লিকেট এলিমেন্ট থাকতে পারে
ব্যবহারপ্রোফাইল ডেটা, কনফিগ সেটিংসলিডারবোর্ড, র‌্যাংকিং, ট্রেন্ডিং টপিকস
পারফরম্যান্সদ্রুত এক্সেস, কম মেমরি ব্যবহারবেশি মেমরি ব্যবহার, রেঙ্কিংয়ের জন্য উপযুক্ত

Hashes এবং Sorted Sets-এর মধ্যে প্রধান পার্থক্য হল অর্ডারিং এবং স্কোরিংHashes সাধারণত ডেটা ফিল্ডগুলোকে একত্রে সংরক্ষণ করতে ব্যবহৃত হয়, যেখানে Sorted Sets এলিমেন্টগুলিকে স্কোর বা র‌্যাংকিং ভিত্তিক অর্ডারে সাজানোর জন্য ব্যবহৃত হয়।

Content added By

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

324

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


১. হ্যাশ (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...