Redis GEO功能介绍
GEO功能 since 3.2.0
用于计算距离 得到距离范围内的key 类似地图 附近的人 功能
添加命令
GEOADD key longitude latitude member [longitude latitude member …]
- longitude 经度
- latitude 纬度
- member 名称
时间复杂度为O(log(N))
127.0.0.1:6379> geoadd cityGeo 116.405285 39.904989 北京
127.0.0.1:6379> geoadd cityGeo 121.472644 31.231706 上海
redisTemplate使用示例:
@Test
public void testAdd(){
Long addedBJ = redisTemplate.opsForGeo()
.add(cityGeoKey,new Point(116.405285,39.904989),"北京");
Long addedSH = redisTemplate.opsForGeo()
.add(cityGeoKey,new Point(121.472644,31.231706),"上海");
System.out.println(addedBJ);
}
获取两点之间距离 distance
GEODIST key member1 member2 [unit]
unit
- m meters 米 (缺省值)
- km kilometers 千米
- mi miles 英里
- ft feet 英尺
127.0.0.1:6379> geodist cityGeo 北京 上海
"1067597.9668"