01 Redis的Geo
最近在寫實現附近人的這個功能,在網上找了不少方案,可是都不盡人意。最後發現了redis已經實現了這個功能。支持存儲地理位置信息來實現附近位置,搖一搖這類依賴於地理位置信息的功能。git
02 添加地理位置
geoadd key longitude latitude memberredis
longitude latitude member分別是該地理位置的經度,緯度,成員。性能
上圖是添加了三個地理位置,分別是EE,Xiao,Chui這三個地理位置測試
03 獲取倆地的距離
geodist key member1 member2 [unit]ui
其中unit表明返回結果的單位,包含如下四種:rem
·m(meters)表明米。it
·km(kilometers)表明千米。class
·mi(miles)表明英里。高德地圖
·ft(feet)表明尺。im
下面操做用於計算天津到北京的距離,並以千米爲單位
上圖是使用高德地圖進行計算的,基本是吻合的
04 獲取附近的位置
georadiusbymember這裏咱們使用這個命令,這個命令的參數只須要給出成員便可。
GEORADIUSBYMEMBER company EE 20 km count 3 asc
這裏是獲取的EE附近20km的成員
05 地理位置的刪除
GEO沒有提供刪除成員的命令,可是由於GEO的底層實現是zset,因此
能夠借用zrem命令實現對地理位置信息的刪除。
zrem key member
這裏只是簡單地使用了這個功能下一篇文章使用大量數據來測試性能。