Redis geo 简单使用

geo的实现是zset,所以可以用zset的命令去操作

zrange geo:city 0 -1    //遍历
zrem geo:city suzhou //删除
ZUNIONSTORE geo:all 2 geo:city geo:user //并集
  • geoadd 集合 经度 纬度 名称: 添加地理位置坐标

    geoadd geo:city 118.8921 31.32751 nanjing
    GEOADD geo:city 120.21201 30.2084 hangzhou
  • geopos: 获取地理位置的坐标

    geopos geo:city nanjing
  • geodist: 返回两个给定位置之间的距离

    geodist geo:city nanjing hangzhou km
  • georadius: 以给定的经纬度为中心,返回键包含的位置元素当中,与中心的距离不超过过给定最大距离的所有位置元素

    georadius geo:city 120 30 100 km withcoord
    1) 1) "hangzhou"
      2) 1) "120.21200805902481079"
         2) "30.20839995425554747"
  • georadiusbymember: 同georadius,指定中心为成员,必定会显示一条member本身的信息

    count N :会显示距离最近的N个地址

    georadiusbymember geo:city nanjing 200 km withcoord withdist count 2
    1) 1) "hangzhou"
      2) "177.2150"
      3) 1) "120.21200805902481079"
         2) "30.20839995425554747"
    2) 1) "nanjing"
      2) "0.0000"
      3) 1) "118.89209836721420288"
         2) "31.32750976275760735"
  • geohash:

geohash geo:city nanjing
1) "wtsd1qyxfx0"

可以用这个hash值去http://geohash.org/${hash}中进行直接定位

posted @ 2020-11-03 11:38  今夜明珠色  阅读(1096)  评论(0编辑  收藏  举报