在先前的《Redis特殊資料類型之stream》文章中為大家介紹了關於資料類型stream的相關內容,這篇文章為大家帶來了Redis中的另一個資料類型Geospatial,下面一起來看一下,希望對大家有幫助。
推薦學習:Redis影片教學
# 存储指定的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到指定的 key 中。 GEOADD key longitude latitude member [longitude latitude member ...] # 从给定的 key 里返回所有指定名称(member)的位置(经度和纬度),不存在的返回 nil。 GEOPOS key member [member ...] # 返回两个给定位置之间的距离。 GEODIST key member1 member2 [m|km|ft|mi] # 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。 GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE key] [STOREDIST key]
#滴滴叫車
這裡以滴滴叫車的場景為例,介紹下具體如何使用GEO 指令:GEOADD 和GEORADIUS 這兩個指令。 假設車輛 ID 是 33,經緯度位置是(116.034579,39.030452),我們可以用一個 GEO 集合保存所有車輛的經緯度,集合 key 是 cars:locations。 執行下面的這個指令,就可以把ID 號碼為33 的車輛的目前經緯度位置存入GEO 集合中:GEOADD cars:locations 116.034579 39.030452 33當使用者想要尋找自己附近的叫車時,LBS 應用程式就可以使用GEORADIUS 指令。 例如,LBS 應用執行下面的命令時,Redis 會根據輸入的使用者的經緯度資訊(116.054579,39.030452 ),尋找以這個經緯度為中心的5 公里內的車輛資訊,並返回給LBS 應用。
GEORADIUS cars:locations 116.054579 39.030452 5 km ASC COUNT 10推薦學習:
以上是Redis特殊資料類型之Geospatial的詳細內容。更多資訊請關注PHP中文網其他相關文章!