XADD, XREAD, এবং XGROUP কমান্ডের ব্যবহার

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

296

Redis Streams হল Redis-এর একটি ডেটা স্ট্রাকচার যা লজিক্যাল অর্ডারে ডেটা সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়। এর মাধ্যমে রিয়েল-টাইম ডেটা স্ট্রিমিং, মেসেজ ব্রোকারিং এবং ইভেন্ট সোরিং সহজ হয়। Redis Streams-এর মধ্যে XADD, XREAD, এবং XGROUP হল তিনটি গুরুত্বপূর্ণ কমান্ড, যা স্ট্রিম ডেটা ম্যানিপুলেশন, পাঠানো এবং গ্রুপের মাধ্যমে স্ট্রিম রিড করতে ব্যবহৃত হয়।

এখানে প্রতিটি কমান্ডের বিস্তারিত ব্যাখ্যা দেওয়া হল:


1. XADD: Adding Data to a Stream

XADD কমান্ডটি Redis Streams-এ নতুন মেসেজ (এলিমেন্ট) যোগ করতে ব্যবহৃত হয়। স্ট্রিমে ডেটা যোগ করার সময়, একটি গাইডেড আইডেন্টিফায়ার (স্ট্রিম আইডি) স্বয়ংক্রিয়ভাবে তৈরি হয়, তবে আপনি চাইলে একটি কাস্টম আইডি ব্যবহার করতে পারেন।

XADD Syntax:

XADD <stream_name> <field1> <value1> <field2> <value2> ...
  • <stream_name>: স্ট্রিমের নাম।
  • <field1> <value1>: স্ট্রিমের ফিল্ড এবং তার মান।

উদাহরণ:

XADD mystream * name "John Doe" age 30

এখানে, mystream নামে একটি স্ট্রিমে দুটি ফিল্ড (name, age) যোগ করা হয়েছে। * স্ট্রিম আইডি হিসেবে একটি স্বয়ংক্রিয় টাইমস্ট্যাম্প ব্যবহার করে।

আউটপুট:

"1625077862030-0"

এটি স্ট্রিম আইডি, যা Redis দ্বারা তৈরি করা হয় এবং এটি স্ট্রিমের মধ্যে ডেটার লজিক্যাল অর্ডার বজায় রাখে।

Additional Options:

  • MAXLEN: একটি সীমা নির্ধারণ করা, যার মাধ্যমে স্ট্রিমে শুধুমাত্র সর্বাধিক নির্দিষ্ট সংখ্যা পর্যন্ত আইটেম রাখা হয় এবং পুরনো আইটেমগুলি অটোমেটিকালি মুছে যায়।

    XADD mystream MAXLEN 1000 * name "Alice" age 25
    

2. XREAD: Reading Data from a Stream

XREAD কমান্ডটি Redis Streams থেকে ডেটা রিড করতে ব্যবহৃত হয়। এটি আপনাকে একটি বা একাধিক স্ট্রিম থেকে ডেটা অ্যাক্সেস করতে দেয় এবং চূড়ান্ত ডেটা (ইভেন্ট) রিটার্ন করে।

XREAD Syntax:

XREAD BLOCK <milliseconds> STREAMS <stream1> <stream2> ... <count> <count>
  • BLOCK: এটি নির্দিষ্ট সময় (মিলিসেকেন্ডে) জন্য ব্লক করতে ব্যবহৃত হয়, যতক্ষণ না নতুন ডেটা না আসে।
  • STREAMS: যে স্ট্রিমগুলোর থেকে ডেটা রিড করতে চান।
  • <stream_name>: স্ট্রিমের নাম।
  • : প্রতি স্ট্রিমে কতটি মেসেজ পাঠাতে হবে।

উদাহরণ:

XREAD BLOCK 0 STREAMS mystream 0

এটি mystream থেকে সর্বশেষ ডেটা রিড করবে এবং যদি নতুন ডেটা না থাকে, তাহলে এটি ইনফিনিট সময়ের জন্য ব্লক করবে। 0 এখানে নির্দেশ করে যে, প্রথম থেকেই ডেটা রিড করতে হবে।

আউটপুট:

1) 1) "mystream"
   2) 1) "1625077862030-0"
      2) 1) "name"
         2) "John Doe"
      3) 1) "age"
         2) "30"

এখানে, mystream থেকে ডেটা রিড করা হয়েছে এবং প্রত্যেকটি ইভেন্টের সাথে তার স্ট্রিম আইডি, ফিল্ড এবং মান দেখানো হয়েছে।


3. XGROUP: Creating and Managing Consumer Groups

XGROUP কমান্ডটি Redis Streams-এ Consumer Group তৈরি এবং পরিচালনা করতে ব্যবহৃত হয়। Consumer Groups Redis Streams-এর একটি শক্তিশালী বৈশিষ্ট্য, যা একাধিক কনজিউমার (গ্রাহক) বা কনজিউমার গ্রুপের মাধ্যমে ডেটা প্রক্রিয়া করার সুবিধা দেয়।

XGROUP Syntax:

XGROUP CREATE <stream_name> <group_name> <ID>
  • <stream_name>: স্ট্রিমের নাম।
  • <group_name>: কনজিউমার গ্রুপের নাম।
  • : স্ট্রিমের যেখানে থেকে কনজিউমার গ্রুপটি শুরু করবে, এটি সাধারণত "0" থাকে, যা প্রথম থেকে রিড করা শুরু করবে।

উদাহরণ:

XGROUP CREATE mystream mygroup 0

এটি mystream নামক স্ট্রিমে mygroup নামে একটি কনজিউমার গ্রুপ তৈরি করবে এবং প্রথম থেকে ডেটা রিড করবে। গ্রুপের উদ্দেশ্য হল একাধিক কনজিউমারের মধ্যে ডেটা ভাগ করে দেওয়া।

Reading Data from a Consumer Group (XREADGROUP)

একবার কনজিউমার গ্রুপ তৈরি হলে, আপনি গ্রুপের মাধ্যমে ডেটা রিড করতে পারেন XREADGROUP কমান্ড ব্যবহার করে। এটি একটি নির্দিষ্ট গ্রুপের সদস্যদের জন্য ডেটা পাঠায়।

XREADGROUP GROUP mygroup consumer1 BLOCK 0 STREAMS mystream >

এখানে, consumer1 হল গ্রুপের সদস্য, যা ডেটা রিড করবে। BLOCK 0 নির্দেশ করে যে, এটি চিরকাল ব্লক করবে যতক্ষণ না নতুন ডেটা আসে, এবং > নির্দেশ করে যে, এটি শুধুমাত্র নতুন ডেটা রিড করবে।

আউটপুট:

1) 1) "mystream"
   2) 1) "1625077862030-0"
      2) 1) "name"
         2) "Alice"
      3) 1) "age"
         2) "25"

Summary of Commands

  1. XADD: নতুন ডেটা (ইভেন্ট) স্ট্রিমে যোগ করতে।
    • XADD mystream * name "John" age 25
  2. XREAD: স্ট্রিম থেকে ডেটা রিড করতে।
    • XREAD BLOCK 0 STREAMS mystream 0
  3. XGROUP: কনজিউমার গ্রুপ তৈরি করতে।
    • XGROUP CREATE mystream mygroup 0
  4. XREADGROUP: কনজিউমার গ্রুপ থেকে ডেটা রিড করতে।
    • XREADGROUP GROUP mygroup consumer1 BLOCK 0 STREAMS mystream >

Use Cases

  1. Real-time Event Processing: স্ট্রিমগুলো ব্যবহার করে ইভেন্ট সিস্টেমে নতুন ডেটা সংগ্রহ করা এবং সেই ডেটা রিয়েল-টাইমে প্রসেস করা।
  2. Messaging Systems: Redis Streams Pub/Sub সিস্টেম হিসেবে কাজ করতে পারে যেখানে একাধিক কনজিউমার গ্রুপ মেসেজ গ্রহণ করতে পারে।
  3. Queue Systems: স্ট্রিম কনজিউমার গ্রুপের মাধ্যমে একাধিক কনজিউমার টাস্কগুলি ভাগ করে নিতে পারে, যেমন কাজের কিউ সিস্টেমে।

Redis Streams একটি শক্তিশালী ডেটা স্ট্রাকচার যা রিয়েল-টাইম ডেটা প্রক্রিয়াকরণ এবং স্কেলেবেল মেসেজিং সিস্টেম তৈরি করতে ব্যবহৃত হয়। XADD, XREAD, এবং XGROUP কমান্ডগুলি এই স্ট্রিম ডেটা পরিচালনা করতে সহায়ক এবং খুবই কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...