新数据类型-Geospatia
简介
GEO,Geographic,地理信息的缩写。
该类型就是元素的二维坐标,在地图上就是经纬度。Redis基于该类型,提供了经纬度设置、查询、范围 查询、距离查询、经纬度Hash等常见操作。
常用命令
-
geoadd key longitude latitude member [longitude latitude member ………]用于存储指定 的地理空间位置,可以将一个或多个经度(longitude)、纬度(latitude)、位置名称(member)添加到 指定的 key 中。
geoadd longitude 116.405285 39.904989 beijing 将北京的经纬度和名称添加到longitude geoadd longitude 104.065735 30.659462 chengdu 121.472644 31.231706 shanghai 将成都和上海的经纬度、名称添加到longitude
有效的经度:-180 ~ +180 有效的纬度:-85.05 ~ +85.05,当设置的经度纬度值超过范围会报错。
两级无法直接添加。
一般会直接下载城市数据,直接通过 Python 程序直接一次性导入。
-
geopos key member [member ……]**从给定的 key 里返回所有指定名称(member)的位置(经度 和纬度),不存在的返回 nil。
geopos longitude shanghai beijing
-
geodist key member1 member2 [m|km|ft|mi]用于返回两个给定位置之间的距离。
geodist longitude shanghai beijing 返回shanghai和beijing之间的距离,单位米 geodist longitude shanghai beijing km 返回shanghai和chengdu之间的距离,单位千米
-
georadius key longitude latitude radius m|km|ft|mi 以给定的经纬度(longitude latitude)为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离(radius )的 所有位置元素。
georadius longitude 116 40 1200 km 获取经纬度116 40为中心,在longitude内1200公里 范围内的所有元素。