1. 增加地理位置信息
- geoadd
longitude、latitude、member分别是该地理位置的经度、纬度、成员
127.0.0.1:6379> geoadd cities:locations 116.28 39.55 beijing
(integer) 1
2. 获取地理位置信息
- geopos
127.0.0.1:6379> geopos cities:locations tianjin
1) 1) "117.12000042200088501"
2) "39.0800000535766543"
3. 获取两个地理位置的距离
- geodist
127.0.0.1:6379> geodist cities:locations tianjin beijing km
"89.2061"
4. 获取指定位置范围内的地理信息位置集合
- georadius
- georadiusbymember
georadius 和 georadiusbymember 两个命令的作用是一样的, 都是以一个地理位置为中心算出指定半径内的其他地理信息位置, 不同的是 georadius 命令的中心位置给出了具体的经纬度, georadiusbymember 只需给出成员即可。
127.0.0.1:6379> georadiusbymember cities:locations beijing 150 km
1) "beijing"
2) "tianjin"
3) "tangshan"
4) "baoding"
5. 获取 geohash
将二维经纬度转换为一维字符串
- geohash
特点:
- GEO 的数据类型为 zset, Redis 将所有地理位置信息的 geohash 存放在 zset 中
字符串越长, 表示的位置更精确
表3-8 geohash 长度与精度对应关系<br />
两个字符串越相似, 它们之间的距离越近, Redis 利用字符串前缀匹配算法实现相关的命令
- geohash 编码和经纬度是可以相互转换的
6. 删除地理位置信息
- zrem