redis十大關係之地理空間GEO
地球上的地址位置都是使用二維的經緯度來表示,經度範圍(-180,180),緯度範圍(-90,90),只要我們確定一個點的經緯度就可以獲取到它在地球上的位置。在redis中,關於GEO相關操作命令如下:
GEOADD 多個經度、緯度、位置名稱新增到指定的key中
需要注意的是,如果出現中文亂碼情況,需要進行如下的操作:
redis-cli -a password --raw
GEOPOS 從鍵裡返回所有給定位置元素的位置(經度和緯度)
GEODIST 返回兩個指定位置之間的距離
GEORADIUS 以給定的經緯度為中心,返回與中心的距離不超過給定半徑的所有位置元素(以半徑為中心,查詢附近的XXX)
- withdist:在返回元素的同時,將為位置元素與中心之間的距離也一併返回。距離的單位和使用者給定的範圍單位保持一致。
- withcoord:將位置元素的經度和緯度一併返回。
- count:限定返回的記錄數。
GEORADIUSBYMEMBER 跟GEORADIUS類似
GEOHASH 返回一個或多個位置元素的GEOHASH
GEOHASH演算法生成的base32編碼值,3維變2維變1維。最後進行雜湊編碼。