特殊數據類型 :Geospatial地理位置

特殊數據類型 :Geospatial 地理位置

127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing # 加入一個地理位置
(integer) 1
127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
(integer) 1
127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing
(integer) 1
127.0.0.1:6379> geoadd china:city 120.16 30.24 hangzhou
(integer) 1
127.0.0.1:6379> geopos china:city beijing #顯示一個地理位置
1) 1) "116.39999896287918"
   2) "39.900000091670925"
127.0.0.1:6379> geopos china:city beijing chongqing
1) 1) "116.39999896287918"
   2) "39.900000091670925"
2) 1) "106.49999767541885"
   2) "29.529999579006592"
127.0.0.1:6379> geodist china:city beijing shanghai km #計算兩個地理位置之間的距離  (m 米/km 千米/im 英里/ft 尺)
"1067.3788"
127.0.0.1:6379> geodist china:city beijing chongqing km
"1464.0708"
127.0.0.1:6379> georadius china:city 110 30 1000 km
# 計算指定經緯度和半徑範圍內的其它位置名稱
1) "chongqing"
2) "hangzhou"
127.0.0.1:6379> georadius china:city 110 30 500 km
1) "chongqing"
127.0.0.1:6379> georadius china:city 110 30 500 km withcoord # 計算指定經緯度和半徑範圍內的其它位置信息
1) 1) "chongqing"
   2) 1) "106.49999767541885"
      2) "29.529999579006592"
127.0.0.1:6379> georadius china:city 110 30 1000 km withdist # 計算指定經緯度和半徑範圍內的其它位置距離
1) 1) "chongqing"
   2) "341.9374"
2) 1) "hangzhou"
   2) "977.5143"
127.0.0.1:6379> georadius china:city 110 30 1000 km withdist count 1 # 計算指定經緯度和半徑範圍內的其它位置距離,同時規定顯示多少個(可用於微信搖一搖搜索指定人數)
1) 1) "chongqing"
   2) "341.9374"
127.0.0.1:6379> geohash china:city beijing chongqing
#拔兩地之間的距離轉換爲hash值
1) "wx4fbxxfke0" 
2) "wm5xzrybty0"
127.0.0.1:6379> zrange china:city 0 -1 # geo底層實現是zset,所以可以通過它的命令去操作geo
1) "chongqing"
2) "hangzhou"
3) "shanghai"
4) "beijing"
127.0.0.1:6379> zrem china:city beijing
(integer) 1
127.0.0.1:6379> zrange china:city 0 -1
1) "chongqing"
2) "hangzhou"
3) "shanghai"
127.0.0.1:6379>

朋友的定位,附近的人,打車距離計算,微信搖一搖,這些功能都可以通過Geospatial數據類型來實現

Redis的GEO在3.2版本就推出了,可以計算地理位置信息,兩地之間的距離,方圓幾裏的人。

http://www.jsons.cn/lngcodeinfo/0706D99C19A781A3/ 可以查詢經緯度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章