এই টিউটোরিয়ালে, আমরা শিখব কিভাবে একটি কীতে সংরক্ষিত জিওস্পেশিয়াল মানের যে এলিমেন্টগুলো একটি নির্দিষ্ট এলাকার আওতায় পড়ে, সেগুলো পাওয়া যায়। এর জন্য আমরা রেডিস GEORADIUSBYMEMBER কমান্ড ব্যবহার করব।
GEORADIUSBYMEMBER কমান্ড
এই কমান্ড একটি কীতে সংরক্ষিত জিওস্পেশিয়াল মান (সর্টেড সেট) এর এক বা একাধিক সদস্য ফেরত দেয়, যারা নির্দিষ্ট সদস্যের দ্রাঘিমাংশ, অক্ষাংশ মানকে কেন্দ্র হিসেবে এবং নির্দিষ্ট ইউনিটে রেডিয়াস ব্যবহার করে হিসাব করা বৃত্তাকার এলাকার সীমানার ভেতরে আছেন। এই এলাকাটি নির্দিষ্ট সদস্যের দ্রাঘিমাংশ, অক্ষাংশ মানকে বৃত্তের কেন্দ্র এবং নির্দিষ্ট ইউনিটে রেডিয়াসকে বৃত্তের রেডিয়াস হিসেবে ব্যবহার করে হিসাব করা হয়।
রেডিয়াস নিম্নলিখিত ইউনিটের যেকোনো একটি ব্যবহার করে নির্দিষ্ট করা হয়:
- m মিটার এর জন্য (ডিফল্ট)।
- km কিলোমিটার এর জন্য।
- mi মাইল এর জন্য।
- ft ফুট এর জন্য।
ঐচ্ছিক আর্গুমেন্টসমূহ
রেডিস GEORADIUSBYMEMBER কমান্ড নিম্নলিখিত ঐচ্ছিক আর্গুমেন্টগুলো নেয়:
- WITHDIST: ফেরত দেওয়া এলিমেন্টগুলোর কেন্দ্র থেকে দূরত্ব রিটার্ন করে। দূরত্বের ইউনিট রেডিয়াস আর্গুমেন্টের ইউনিটের সাথে একই।
- WITHCOORD: ফেরত দেওয়া সকল এলিমেন্টের দ্রাঘিমাংশ, অক্ষাংশ কোঅর্ডিনেট রিটার্ন করে।
- WITHHASH: ফেরত দেওয়া সকল এলিমেন্টের রড জিওহ্যাশ স্ট্রিং (৫২ বিট অনসাইনড ইন্টিজার) রিটার্ন করে। এই জিওহ্যাশ স্ট্রিং সর্টেড সেটে একটি এলিমেন্টের স্কোর।
- ASC: এলিমেন্টগুলো কেন্দ্র থেকে নিকটতম থেকে দূরতম সর্টিং অর্ডারে রিটার্ন করে। ডিফল্টভাবে এলিমেন্টগুলো আনসোর্টেড অর্ডারে ফেরত দেওয়া হয়।
- DESC: এলিমেন্টগুলো কেন্দ্র থেকে দূরতম থেকে নিকটতম সর্টিং অর্ডারে রিটার্ন করে।
- COUNT <count>: প্রথম count সংখ্যক ম্যাচ করা এলিমেন্টের সাথে ফলাফল সীমাবদ্ধ করে। ডিফল্টভাবে সব ম্যাচ করা এলিমেন্ট ফেরত দেওয়া হয়।
রিটার্ন ভ্যালু
এই কমান্ড নিম্নরূপ মান সহ একটি অ্যারে রিপ্লাই ফেরত দেয়:
- ঐচ্ছিক [WITH] আর্গুমেন্ট নির্দিষ্ট না করা থাকলে, এই কমান্ড এলিমেন্টের নাম ধারণকারী একটি অ্যারে ফেরত দেয়।
- WITHCOORD, WITHDIST, WITHHASH অপশনগুলো নির্দিষ্ট থাকলে, এই কমান্ড একটি অ্যারে অফ অ্যারে ফেরত দেয়, যেখানে প্রতিটি সাব-অ্যারে একটি একক এলিমেন্টকে রিপ্রেজেন্ট করে। সাব-অ্যারেতে প্রথম আইটেম সবসময় ফেরত দেওয়া এলিমেন্টের নাম এবং অন্যান্য তথ্য নিম্নলিখিত ক্রমে ফেরত দেওয়া হয়:
- কেন্দ্র থেকে দূরত্ব ফ্লোটিং পয়েন্ট সংখ্যা হিসেবে, রেডিয়াসে নির্দিষ্ট ইউনিটে।
- জিওহ্যাশ ইন্টিজার।
- দুটি আইটেম x,y অ্যারে হিসেবে কোঅর্ডিনেট (দ্রাঘিমাংশ, অক্ষাংশ)।
কীটি অস্তিত্বে না থাকলে nil ফেরত দেওয়া হয় এবং কীটি আছে কিন্তু মান GEOADD কমান্ড দিয়ে পপুলেট করা সর্টেড সেট ডেটা টাইপের না হলে এরর ফেরত দেওয়া হয়। রেডিস GEORADIUSBYMEMBER কমান্ডের সিনট্যাক্স:
সিনট্যাক্স:
redis host:port> GEORADIUSBYMEMBER <keyname> <member> <radius> [UNIT] [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
আউটপুট:
- (array) রিপ্লাই, জিওস্পেশিয়াল মানগুলোর এলিমেন্ট উপস্থাপন করে। - Nil, যদি কীটি অস্তিত্বে না থাকে। - এরর, যদি কীটি আছে কিন্তু মান GEOADD দিয়ে পপুলেট করা সর্টেড সেট না হয়।
উদাহরণ:

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