এই টিউটোরিয়ালে আমরা শিখব কিভাবে Redis ডেটাস্টোরে একটি কীতে সংরক্ষিত লিস্ট ভ্যালুর শেষ এলিমেন্ট সরিয়ে রিটার্ন করা এবং সেই এলিমেন্টটি অন্য একটি কীতে সংরক্ষিত লিস্ট ভ্যালুর প্রথম পজিশনে ইনসার্ট করা যায়। এর জন্য আমরা Redis RPOPLPUSH এবং BRPOPLPUSH কমান্ড ব্যবহার করব।
RPOPLPUSH কমান্ড
এই কমান্ড সোর্স কীতে সংরক্ষিত লিস্ট ভ্যালুর টেইল (শেষ) থেকে এলিমেন্ট সরিয়ে রিটার্ন করে এবং সেই এলিমেন্টটি ডেস্টিনেশন কীতে সংরক্ষিত লিস্ট ভ্যালুর হেড (শুরু) এ ইনসার্ট করে। যদি সোর্স কী না থাকে, তবে nil রিটার্ন হয় এবং কোনো অপারেশন হয় না। যদি ডেস্টিনেশন কী না থাকে, তবে সেটি প্রথমে খালি লিস্ট হিসেবে তৈরি হয় এবং তারপর ইনসার্ট অপারেশন করা হয়।
যদি সোর্স এবং ডেস্টিনেশন কী একই হয়, তবে এই অপারেশন লিস্ট এলিমেন্ট রোটেট করার সমান। Redis RPOPLPUSH কমান্ডের সিনট্যাক্স:
সিনট্যাক্স:
redis host:port> RPOPLPUSH <keyname-source> <keyname-destination>
আউটপুট:
- (স্ট্রিং) রিপ্লাই, সোর্স লিস্টের পপ করা এলিমেন্ট। - (nil), যদি সোর্স কী না থাকে। - এরর, যদি সোর্স বা ডেস্টিনেশন কী থাকেও লিস্ট ছাড়া অন্য ডেটা টাইপ থাকে।
উদাহরণ:

BRPOPLPUSH কমান্ড
এই কমান্ড RPOPLPUSH কমান্ডের ব্লকিং ভার্সন, কারণ এটি অপারেশন ব্লক করে দেয় যখন সোর্স লিস্ট ভ্যালুতে পপ করার জন্য কোনো এলিমেন্ট নেই। অন্য কথায়, এটি অপারেশন ব্লক করে যখন সোর্স কীতে লিস্ট ভ্যালু খালি থাকে বা সোর্স কী নেই।
যখন অন্য একটি ক্লায়েন্ট LPUSH, RPUSH, বা LINSERT কমান্ড দিয়ে সোর্স লিস্ট ভ্যালুতে এলিমেন্ট ইনসার্ট করে, তখন ক্লায়েন্ট আনব্লক হয়ে RPOPLPUSH অপারেশন সম্পন্ন করে।
যখন নন-জিরো টাইমআউট স্পেসিফাই করা থাকে এবং টাইমআউট এক্সপায়ার হয়ে যায় সোর্স কীতে কোনো ইনসার্ট অপারেশন ছাড়া, তবে ক্লায়েন্ট আনব্লক হয়ে null ভ্যালু রিটার্ন করে।
টাইমআউট আর্গুমেন্ট হলো একটি ইন্টিজার ভ্যালু যা ব্লক করার সর্বোচ্চ সেকেন্ড সংখ্যা নির্দেশ করে। ০ সেকেন্ডের টাইমআউট ব্যবহার করে অনিশ্চিতকালের জন্য ব্লক করা যায়।
Redis BRPOPLPUSH কমান্ডের সিনট্যাক্স:
সিনট্যাক্স:
redis host:port> BRPOPLPUSH <keyname-source> <keyname-destination> <timeout>
আউটপুট:
- (স্ট্রিং) রিপ্লাই, সোর্স লিস্টের পপ করা এলিমেন্ট। - (nil) রিপ্লাই, যখন কোনো এলিমেন্ট পপ করা যায়নি এবং টাইমআউট এক্সপায়ার হয়েছে।
উদাহরণ:

রেফারেন্স:
- RPOPLPUSH কমান্ড ডকুমেন্টেশন
- BRPOPLPUSH কমান্ড ডকুমেন্টেশন
আপনার মতামত কমেন্টে শেয়ার করুন এবং অন্যদের জানান।