个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
Redis GEO主要用于存储地理位置信息,并对存储的选项进行操作:1.添加地理位置的坐标2.获取地理位置的坐标3.计算两个地理位置间的距离4.根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
中文乱码处理
redis-cli -a 123456 --raw # redis-cli进入redis控制台,-a输入密码,--raw避免中文乱码问题1.geoadd 存储指定的地理空间位置(精度、维度、位置名称)
geoadd用于存储指定的地理空间位置到key中,语法:
geoadd key [NX|XX] [CH] longitude latitude member [longitude latitude member ...]
longitude —— 精度latitude —— 维度member —— 位置名称geoadd city 121.48941 31.40527"广州"
2.geopos 返回指定位置名称的经度和纬度
geopos用于从指定key中返回所有指定位置名称的经度和纬度,不存在返回nil
geopos key member [member ...]
geopos city 广州 # 获取空间名称“广州”的经纬度 geopos city 深圳 # 没有存储“深圳”的空间名称,返回nil
3.geohash 获取保存位置的geohash值
Redis GEO 使用geohash来保存地理位置的坐标geohash用于获取一个或多个位置元素的geohash值geohash算法生成的是base32编码值,过程:
geohash key member [member ...]
# 获取key:city中位置元素“广州”的geohash值 geohash city"广州"
4.geodist 返回两个位置元素之间的距离(单位:m|km|ft|mi)
geodist 用于返回两个给定位置间的距离
geodist key member1 member2 [M|KM|FT|MI]
m —— 米km —— 千米ft —— 英尺mi —— 英里geodist city 广州 上海 KM geodist city 广州 上海 M geodist city 广州 上海 FT geodist city 广州 上海 MI
5.georadius 获取key中指定经纬度范围内的所有位置元素(给定经纬度)
georadius 以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素。
georadius key longitude latitude radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
longitude :经度latitude :维度radius : 最大距离WITHDIST :在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。WITHCOORD : 将位置元素的经度和维度也一并返回。WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。COUNT count :限定返回的最大记录数。# 键:city # 经度和纬度:121.48941010236740112 31.40526993848380499 # 以经纬度为中心,向外扩张的最大距离:2000 # 单位:km # withcoord:将获取到的位置元素的经纬度一并返回 # withdist:返回坐标元素与给定经纬度中心的距离 georadius city 121.48941010236740112 31.40526993848380499 2000 km withcoord withdist count 2
6.georadiusbymember 获取key中指定范围内的所有位置元素(给定位置元素)
找出位域指定范围内的元素,中心点是由给定的位置元素决定的
georadiusbymember key member radius M|KM|FT|MI [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC|DESC] [STORE key] [STOREDIST key]
radius : 最大距离WITHDIST :在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。 距离的单位和用户给定的范围单位保持一致。WITHCOORD : 将位置元素的经度和维度也一并返回。WITHHASH : 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。COUNT count :限定返回的最大记录数。georadiusbymember city 广州 2000 km withcoord withdist count 2