Javascript Disabled!

Please Enable Javascript if you disabled it, or use another browser we preferred Google Chrome.
Please Refresh Page After Enable

Powered By UnCopy Plugin.

Redis GEODIST


Redis شروع به پشتیبانی از انواع داده های مکانی از نسخه 3.2.0 می کند. این یکی از ویژگی های منحصر به فردی است که Redis نسبت به سایر فروشگاه های داده ارائه می دهد. ساختار داده های مکانی می تواند مختصات یک مکان معین را نگه دارد. با مجموعه ای غنی از عملیات، امکان پرس و جو از مکان ها و مختصات آنها بر اساس معیارهای مختلف وجود دارد.

هر عضو به یک مجموعه مرتب‌سازی شده Redis که توسط یک کلید ارجاع داده می‌شود، هل داده می‌شود که به شما امکان می‌دهد در زمان‌های بعدی آن موارد جغرافیایی را به طور کارآمد و به شیوه‌ای مرتب جستجو کنید. یکی از بهترین کاربردهای این ساختار داده این است که می توانید به راحتی فاصله بین دو مکان جغرافیایی (عضو) را با استفاده از دستور GEODIST معرفی شده توسط Redis جستجو کنید. این یک راهنمای مفصل در مورد دستور GEODIST، نحو و موارد استفاده از آن خواهد بود.

محاسبه فاصله

ردیس از فرمول ریاضی هاورسین برای محاسبه فواصل شاخص های مکانی استفاده می کند که فرض می کند زمین یک کره کامل است. همه ما می دانیم که زمین یک کره کامل نیست. بنابراین، یک خطای 0.5٪ را می توان با محاسبه فاصله معرفی کرد. این را می توان برای برنامه هایی مانند رسانه های اجتماعی، مکان یاب های نزدیک، و غیره نادیده گرفت. اما برای برنامه های کاربردی حساس به خطا، باید با احتیاط از آن استفاده کرد.

فرماندهی GEODIST

دستور GEODIST برای محاسبه فاصله بین دو عضو ذخیره شده در یک کلید مکانی خاص استفاده می شود. این دستور دو پارامتر عضو اجباری و یک کلید جغرافیایی (شاخص) را می پذیرد که به یک مجموعه مرتب شده اشاره می کند. فاصله بر حسب متر (متر) برگردانده می شود. به صورت اختیاری، می توانید واحد را نیز مشخص کنید. کیلومتر، مایل و پا را نیز پشتیبانی می کند.

نحو دستور GEODIST به شرح زیر است:

GEODIST geospatial_index/عضو کلیدی_1 عضو_2 [M | KM | FT | MI]

فاصله را به عنوان یک مقدار دوبرابر برمی گرداند. مقدار به واحدی که شما مشخص کرده اید بستگی دارد. هر زمان که دستور با اعضای غیر موجود یا مفقود مواجه شود، NULL را برمی گرداند.

مورد استفاده – فاصله بین دو جاذبه را بدست آورید

بیایید فرض کنیم که یک شرکت توریستی اپلیکیشن موبایلی را برای یافتن جزئیات جاذبه های یک کشور معین معرفی کرده است. این برنامه تلفن همراه از فروشگاه داده Redis در باطن خود برای ذخیره جزئیات جاذبه ها از جمله مختصات مکانی آنها استفاده می کند.

آنها از هش های Redis برای ذخیره اطلاعات اولیه مربوط به جاذبه ها استفاده کرده اند. برای قسمت مختصات موقعیت جغرافیایی، آنها از ساختار داده های جغرافیایی Redis استفاده می کنند.

بیایید یک شاخص جغرافیایی جدید ایجاد کنیم که شامل دو عضو است.

جاذبه های جغرافیایی: نیویورک 23.596920 67.104923 “کوه تنبل” 134.694013 45.394022 “رود صابرا”

در حال حاضر “کوه تنبل” و ”رودخانه صبرااعضا باید در یک مجموعه مرتب شده ذخیره شوند که با کلید ارجاع داده می شود جاذبه ها: نیویورک.

بیایید از دستور GEODIST برای محاسبه فاصله بین دو عضو بالا استفاده کنیم. به طور پیش فرض، باید فاصله را بر حسب متر برگرداند.

جاذبه های زمین شناسی: نیویورک “کوه تنبل” “رود صابرا”

همانطور که می بینید، ما شاخص جغرافیایی را به صورت مشخص کرده ایم جاذبه ها: نیویورک. بعد، ما دو عضو را به عنوان رشته داریم.

همانطور که انتظار می رود، خروجی بر حسب متر برگردانده می شود. از نوع داده دوگانه برای نشان دادن فاصله استفاده شده است.

بازیابی فاصله بر حسب کیلومتر

بازیابی مسافت فوق به کیلومتر نیز امکان پذیر است. فقط باید آرگومان اختیاری را پاس کنید.کیلومتر‘ به شرح زیر است:

جاذبه های زمین شناسی: نیویورک “کوه تنبل” “رود صابرا” کیلومتر

خروجی

بازیابی فاصله به مایل

آرگومان ‘mi’ باید برای محاسبه فاصله بین اعضای داده شده بر حسب مایل مشخص شود.

جاذبه های زمین شناسی: نیویورک “کوه تنبل” “رود صابرا” مایل

خروجی

بازیابی فاصله به فوت

هر زمان که نیاز به دانستن تعداد پاها از یک عضو به عضو دیگر داشتید، فقط واحد را به صورت ‘ مشخص کنیدفوت‘.

جاذبه های زمین شناسی: نیویورک “کوه تنبل” “رود صابرا” فوت

خروجی

هر زمان که اعضای غیر موجود را مشخص کنید، دستور GEODIST باید null را برگرداند. بیایید دو عضو غیر موجود را به صورت زیر مشخص کنیم:

جاذبه های زمین شناسی: نیویورک “تنبل” “صبرا”

خروجی

اگر کلید مشخص شده وجود نداشته باشد، دستور null را برمی گرداند.

جاذبه های زمین شناسی: واشنگتن “کوه تنبل” “رود صابرا” فوت

در مثال بالا، جاذبه ها: واشنگتن کلید در دسترس نیست بنابراین، خروجی NULL است که در زیر نشان داده شده است:

نتیجه

به طور خلاصه، نوع داده های مکانی Redis برای نگهداری مختصات مکان های جغرافیایی معرفی شده است. همانطور که گفته شد، مقادیر طول و عرض جغرافیایی برای یک عضو مشخص ذخیره می شود. این به عنوان یک مجموعه مرتب شده در حافظه نمایش داده می شود. چندین دستور برای کار بر روی انواع داده های مکانی در دسترس است. GEODIST یکی از دستورات مفیدی است که بر روی شاخص های مکانی برای برگرداندن فاصله بین اعضای مشخص شده عمل می کند. همانطور که در بخش مقدمه بحث شد، فاصله به طور پیش فرض بر حسب متر برگردانده می شود. دستور GEODIST آرگومان های اختیاری را برای برگرداندن مسافت در واحدهای دیگر مانند کیلومتر، فوت و مایل می پذیرد.


به این مطلب امتیاز دهید

جهت ارسال نظر اینجا کلیک کنید.