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}中进行直接定位