কম্পিউটার টিউটোরিয়াল

Redis-এ ZPOPMAX ও BZPOPMAX দিয়ে সর্টেড সেট থেকে হাইএস্ট-স্কোরিং মেম্বার রিট্রিভ করুন

এই টিউটোরিয়ালে, আমরা শিখব কীভাবে একটি রিডিস ডেটাস্টোরে একটি কী-এ স্টোর করা সর্টেড সেট ভ্যালুর হাইএস্ট স্কোর এলিমেন্ট রিমুভ ও রিটার্ন করতে হয়, Redis ZPOPMAX এবং BZPOPMAX কমান্ড ব্যবহার করে।

ZPOPMAX কমান্ড

এই কমান্ড একটি নির্দিষ্ট কী-এ স্টোর করা সর্টেড সেট ভ্যালুর থেকে এক বা অধিক হাইএস্ট স্কোর এলিমেন্ট রিমুভ ও রিটার্ন করে। কমান্ড count আর্গুমেন্ট নেয়, যা সর্টেড সেট ভ্যালুর থেকে রিমুভ করা মোট এলিমেন্টের সংখ্যা রিপ্রেজেন্ট করে। যদি এটি স্পেসিফাইড না থাকে, count-এর ডিফল্ট ভ্যালু ১। এলিমেন্টগুলো রিটার্ন হলে, সবচেয়ে হাই স্কোরের এলিমেন্টটি প্রথমে আসবে, তারপর লোয়ার স্কোরের এলিমেন্টগুলো।

এরর রিটার্ন হয়, যদি কী এক্সিস্ট করে কিন্তু কী-এ স্টোর করা ভ্যালু সর্টেড সেট ডেটা টাইপের নয় এবং Nil রিটার্ন হয়, যদি কী এক্সিস্ট না করে।

Redis ZPOPMAX কমান্ডের সিনট্যাক্স নিচের মতো:

সিনট্যাক্স :-

redis host:post> ZPOPMAX  

আউটপুট :-

- (array) reply, সর্টেড সেটের এলিমেন্ট ও স্কোর রিপ্রেজেন্ট করে। - (nil), যদি কী এক্সিস্ট না করে। - Error, যদি কী এক্সিস্ট করে এবং কী-এ স্টোর করা ভ্যালু সর্টেড সেট নয়। 

উদাহরণ :-

Redis-এ ZPOPMAX ও BZPOPMAX দিয়ে সর্টেড সেট থেকে হাইএস্ট-স্কোরিং মেম্বার রিট্রিভ করুন

BZPOPMAX কমান্ড

এই কমান্ড ZPOPMAX কমান্ডের একটি ব্লকিং ভার্সন কারণ এটি অপারেশন ব্লক করে যখন কোনো এলিমেন্ট পপ করার জন্য নেই যেকোনো স্পেসিফাইড সর্টেড সেট থেকে। অন্য কথায়, এটি অপারেশন ব্লক করে যখন সকল স্পেসিফাইড সর্টেড সেট খালি বা সকল স্পেসিফাইড কী এক্সিস্ট করে না।

এটি স্পেসিফাইড কীগুলো বাম থেকে ডানে চেক করে প্রথম নন-এমপ্টি সর্টেড সেট ভ্যালুর থেকে হাইএস্ট স্কোর এলিমেন্ট রিমুভ ও রিটার্ন করে। তাই উদাহরণস্বরূপ, যদি কমান্ড BZPOPMAX set1 set2 set3 0 এক্সিকিউট করা হয়, যেখানে কী set1 এক্সিস্ট করে না (খালি সেট হিসেবে বিবেচনা), set2 একটি খালি সেট এবং set3 তিনটি এলিমেন্ট ধারণ করে, তবে এটি set3-এ স্টোর করা সর্টেড সেট ভ্যালুর হাইএস্ট স্কোর এলিমেন্ট রিমুভ ও রিটার্ন করবে কারণ সেট1 থেকে সেট3 চেক করার সময় সেটি প্রথম নন-এমপ্টি সেট।

এই কমান্ড timeout (ইন্টিজার) আর্গুমেন্ট নেয়, যা ব্লক করার ম্যাক্সিমাম সেকেন্ড রিপ্রেজেন্ট করে। শূন্য টাইমআউট ব্যবহার করা যায় ইনডিফিনিটলি ব্লক করতে।

Redis BZPOPMAX কমান্ডের সিনট্যাক্স নিচের মতো:

সিনট্যাক্স :-

redis host:post> BZPOPMAX  [  ] 

আউটপুট :-

- (array) reply, তিনটি এলিমেন্ট রিটার্ন করা হয় যেখানে প্রথম এলিমেন্ট হলো সর্টেড সেট কীর নাম, দ্বিতীয় এলিমেন্ট হলো পপ করা এলিমেন্টের স্কোর এবং তৃতীয় এলিমেন্ট হলো পপ করা এলিমেন্টটি নিজে। - (nil), যখন কোনো এলিমেন্ট পপ করা যায়নি এবং টাইমআউট এক্সপায়ার হয়েছে।

উদাহরণ :-

Redis-এ ZPOPMAX ও BZPOPMAX দিয়ে সর্টেড সেট থেকে হাইএস্ট-স্কোরিং মেম্বার রিট্রিভ করুন

রেফারেন্স :-

  1. ZPOPMAX Command Docs
  2. BZPOPMAX Command Docs

রিডিস ডেটাস্টোরে সর্টেড সেট ভ্যালুর হাইএস্ট স্কোর এলিমেন্ট রিমুভ ও রিটার্ন করার বিষয়ে এতটুকু। আপনার মতামত কমেন্ট সেকশনে শেয়ার করুন এবং অন্যদের সাথে শেয়ার করুন যদি পছন্দ হয়।


  1. রেডিস ZCARD দিয়ে সর্টেড সেটের আকার খুঁজুন

  2. রেডিস ZINCRBY: সর্টেড সেট স্কোর দ্রুত ও নিরাপদে ইনক্রিমেন্ট করুন

  3. Redis ZREVRANGEBYSCORE ব্যবহার করে সকোর রেঞ্জ অনুযায়ী সর্টেড সেট এলিমেন্ট ডিসেন্ডিং অর্ডারে রিট্রিভ করুন

  4. Redis ZRANGEBYSCORE মাস্টার করুন: সকোর রেঞ্জ অনুযায়ী সর্টেড সেট এলিমেন্ট এসেন্ডিং অর্ডারে রিট্রিভ করুন