এই টিউটোরিয়ালে আমরা শিখব কিভাবে Redis ZINTERSTORE কমান্ড ব্যবহার করে Redis ডেটাস্টোরে সংরক্ষিত দুই বা তার অধিক সর্টেড সেট ভ্যালুর ওপর ইন্টারসেকশন অপারেশন করা যায়।
সেটের ইন্টারসেকশন:
সেট থিয়রিতে, দুটি বা অধিক সেটের ইন্টারসেকশন হলো সেই সেট যাতে সব সেটের কমন এলিমেন্টগুলো থাকে। উদাহরণ:
A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8, 9} A ও B-এর ইন্টারসেকশন: A ∩ B = {4, 5} ZINTERSTORE কমান্ড:
এই কমান্ড দুটি বা অধিক নির্দিষ্ট সর্টেড সেটের ইন্টারসেকশন অপারেশন করে ফলাফল একটি নতুন সর্টেড সেট ভ্যালু হিসেবে নির্দিষ্ট কীতে সংরক্ষণ করে। নন-এксиস্টিং সর্টেড সেটকে খালি সর্টেড সেট ধরে নেওয়া হয়। এরর রিটার্ন হয়, যদি কী থাকেও সর্টেড সেট ছাড়া অন্য ডেটা টাইপ থাকে। Redis ZINTERSTORE কমান্ডের সিনট্যাক্স:
সিনট্যাক্স:
redis host:port> ZINTERSTORE <destination> numkeys <keyName> [<keyName>] [WEIGHTS weight [weight]] [AGGREGATE SUM|MIN|MAX]
আউটপুট:
- (অ্যারে) রিপ্লাই, যাতে ইন্টারসেকশন অপারেশন থেকে ফলাফলগুলো থাকে। - এরর, যদি কী থাকেও সর্টেড সেট ছাড়া অন্য ডেটা টাইপ থাকে।
numkeys হলো ইনপুট কীগুলোর সংখ্যা যাদের ওপর ইন্টারসেকশন অপারেশন করা হবে। numkeys আর্গুমেন্ট ইনপুট কী এবং অন্যান্য আর্গুমেন্টের আগে পাস করা বাধ্যতামূলক। ফলাফল destination কীতে একটি নতুন সর্টেড সেট হিসেবে সংরক্ষিত হয়। যদি ডেস্টিনেশন কী ইতিমধ্যে থাকে, তবে সেটি আপসর্স্ত হবে।
WEIGHTS অপশন ব্যবহার করে প্রতিটি ইনপুট সর্টেড সেটের জন্য মাল্টিপ্লিকেশন ফ্যাক্টর স্পেসিফাই করা যায়। এর মানে হলো সব ইনপুট সর্টেড সেটের প্রতিটি এলিমেন্টের স্কোর এই ফ্যাক্টর দিয়ে গুণ করা হবে অ্যাগ্রিগেশন ফাংশনে পাস করার আগে। যখন WEIGHTS পাস করা হয় না, তবে মাল্টিপ্লিকেশন ফ্যাক্টর ১ ধরা হয়।
AGGREGATE অপশন ব্যবহার করে ইন্টারসেকশন ফলাফল কীভাবে অ্যাগ্রিগেট হবে তা স্পেসিফাই করা যায়। এর ডিফল্ট ভ্যালু SUM, অর্থাৎ একটি এলিমেন্টের স্কোর সব ইনপুট সর্টেড সেটে যেখানে আছে সেগুলোর সমষ্টি। যখন এই অপশন MIN বা MAX সেট করা হয়, তবে ফলাফলস্বরূপ সেটে এলিমেন্টের মিনিমাম বা ম্যাক্সিমাম স্কোর থাকবে সাব সেটগুলোতে যেখানে আছে।
উদাহরণ:

রেফারেন্স:
- ZINTERSTORE কমান্ড ডকুমেন্টেশন
Redis ডেটাস্টোরে সংরক্ষিত দুই বা অধিক সর্টেড সেট ভ্যালুর ওপর ইন্টারসেকশন অপারেশন করার পদ্ধতিই ছিল এইসব। আপনার মতামত কমেন্টে শেয়ার করুন এবং অন্যদের জানান।
