6_redis十大關係之地理空間GEO

LilyFlower發表於2024-03-10

redis十大關係之地理空間GEO

地球上的地址位置都是使用二維的經緯度來表示,經度範圍(-180,180),緯度範圍(-90,90),只要我們確定一個點的經緯度就可以獲取到它在地球上的位置。在redis中,關於GEO相關操作命令如下:

GEOADD 多個經度、緯度、位置名稱新增到指定的key中

image-20240310115618416

需要注意的是,如果出現中文亂碼情況,需要進行如下的操作:

redis-cli -a password --raw

image-20240310120122235

GEOPOS 從鍵裡返回所有給定位置元素的位置(經度和緯度)

image-20240310120211913

GEODIST 返回兩個指定位置之間的距離

image-20240310120311524

image-20240310120710773

GEORADIUS 以給定的經緯度為中心,返回與中心的距離不超過給定半徑的所有位置元素(以半徑為中心,查詢附近的XXX

image-20240310121214302

  • withdist:在返回元素的同時,將為位置元素與中心之間的距離也一併返回。距離的單位和使用者給定的範圍單位保持一致。
  • withcoord:將位置元素的經度和緯度一併返回。
  • count:限定返回的記錄數。

GEORADIUSBYMEMBER 跟GEORADIUS類似

image-20240310122036945

GEOHASH 返回一個或多個位置元素的GEOHASH

GEOHASH演算法生成的base32編碼值,3維變2維變1維。最後進行雜湊編碼。

image-20240310120548077

相關文章