Redis-GEO
一. Redis的GEO特性
Redis3.2版本提供了GEO功能,支持存储地理位置信息用来实现诸如摇一摇,附近位置这类依赖于地理位置信息的功能。
二. 命令
2.1 增加地理位置信息
命令:geoadd key longitude latitude member[longitude latitude member…]
例如:geoadd cities:locations 116.28 39.55 beijing 117.12 39.08 tianjin114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding
返回:4
2.2 获取地理位置信息
命令:geopos key member[member…]
例如:geopos cities:locations tianjin beijing
返回:
1) 1) "117.12000042200088501"
2) "39.0800000535766543"
2) 1) "116.28000229597091675"
2) "39.5500007245470826"
2.3 获取两个地理位置的距离
命令:geodist key member1 member2 [unit]
选项:unit:单位,默认为m(米)
m:米
km:千米
mi:英里
ft:尺
例如:
10.3.34.101:6378> geodistcities:locations beijing tianjin
"89206.0576"
10.3.34.101:6378> geodistcities:locations beijing tianjin km
"89.2061"
10.3.34.101:6378> geodistcities:locations beijing tianjin m
"89206.0576"
10.3.34.101:6378> geodist cities:locationsbeijing tianjin mi
"55.4302"
10.3.34.101:6378> geodistcities:locations beijing tianjin ft
"292670.7926"
2.4 获取指定位置范围内的地理信息位置集合
(1)中心为坐标
georadius key longtitude latitude radiumm|km|mi|ft [withcoord][withdist][withhash][COUNT count][asc|desc][store key][storedistkey]
(2)中心为成员
georadius key member radium m|km|mi|ft [withcoord][withdist][withhash][COUNTcount][asc|desc][store key][storedist key]
选项:
withcoord:返回结果中包含经纬度
withdist:返回结果中包含离中心节点位置的距离
withhash:返回结果中包含geohash
Count count:返回结果的数量
asc|desc:按照离中心节点的距离做升序或者降序
store key:将返回结果的地理位置信息保存在指定键中
stroedist key:将返回结果离中心点的距离保存在指定键中
例如:
10.3.34.101:6378> georadiusbymembercities:locations beijing 150 km
1) "beijing"
2) "tianjin"
3) "tangshan"
4) "baoding"
10.3.34.101:6378> georadiusbymembercities:locations beijing 15 km
2.5 获取geohash
geohash将二维经纬度转换为一维字符串,字符串越长,精度越高,当长度为9时,精度在2米左右。
Geohash长度
精度
1
2500
2
630
3
78
4
20
5
2.4
6
0.61
7
0.076
8
0.019
9
0.002
命令:geohash key member[member…]
例如:geohash cities:locations beijing
1) "wx48ypbe2q0"
2.6 删除地理位置信息
GEO没有删除成员的命令,但是因为GEO的底层实现是zset,所以可以借用zrem命令实现对地理位置信息的删除。
命令:zrem key member
---------------------
作者:大道化简
来源:CSDN
原文:https://blog.csdn.net/sunhuiliang85/article/details/75020341
版权声明:本文为博主原创文章,转载请附上博文链接!
Redis-GEO的更多相关文章
- Redis Geo: Redis新增位置查询功能
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/144.html 移动互联网增进了人与人之间的联系,其中基于位置信息的服务( ...
- 转:Redis Geo: Redis新增位置查询功能
原文来自于:http://www.infoq.com/cn/news/2015/07/redis-geo 移动互联网增进了人与人之间的联系,其中基于位置信息的服务(Location Based Ser ...
- redis GEO地理位置命令介绍
GEOADD keylongitude latitude member [longitude latitude member ...] Available since 3.2.0. Time comp ...
- Redis GEO 功能使用场景
本文来源:https://www.dazhuanlan.com/2020/02/05/5e3a0a3110649/ 背景 前段时间自己在做附近直播相关业务,其中有一个核心的点就是检索用户附近的主播,也 ...
- Redis GEO 地理位置
目录 GEO指令 GEOADD GEODIST GEOPOP GEOHASH GEORADIUS GEORADIUSBYMEMBER 指令补充 删除操作 避免单集合数量过多 存储原理 GEOADD存储 ...
- redis geo 初探
redis的geo搜索功能是3.2之后新增的,所以实验开始之前先查看redis的版本,确保版本正确. redis的geo多用于地理类应用,所以这次还是用了高德地图API来用作数据源. 首先截取几个点: ...
- Redis GEO ,GEOHASH,Spatial_index
https://matt.sh/redis-geo http://antirez.com/latest/0 http://invece.org/ https://github.com/davidmot ...
- 【转】redis GEO地理位置
redis目前已经到了3.2版本,3.2版本里面新增的一个功能就是对GEO(地理位置)的支持. 地理位置大概提供了6个命令,分别为: GEOADD GEODIST GEOHASH GEOPOS GEO ...
- Redis GEO 特性在 LBS 中的应用总结
什么是LBS LBS(Location Based Service),基于位置的服务. Redis和GEO Redis 是最热门的 nosql 数据库之一,它的最大特点就是快.所以在 LBS 这种需要 ...
- Redis Geo HyperLogLog类型介绍
Geo类型 Redis3.2.0版本推出 可以将用户给定的地理位置信息存储起来,并对这些信息进行操作 GEOADD key longitude latitude member [longitude ...
随机推荐
- C#编程入门--MYSQLHELPER
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Mysql优化-分区
分区简介 分区是根据一定的规则,数据库把一个表分解成多个更小的.更容易管理的部分.就访问数据库应用而言,逻辑上就只有一个表或者一个索引,但实际上这个表可能有N个物理分区对象组成,每个分区都是一个独立的 ...
- Python 分解质因数
def zys(n, value=[]): for i in range(2, int(n / 2 + 1)): if n % i == 0: value.append(i) zys(n / i, v ...
- leetcood学习笔记-70-爬楼梯
题目描述: 第一次提交:(超时) class Solution: def climbStairs(self, n: int) -> int: if n == 0 or n == 1 or n = ...
- 【安装】Mac rabbitMQ
安装 brew install rabbitmq 目录 cd /usr/local/Cellar/rabbitmq/3.7.4/sbin 插件 sudo ./rabbitmq-plugins ena ...
- NX二次开发-UFUN更改视图比例大小UF_DRAW_set_view_scale
#include <uf.h> #include <uf_draw.h> #include <uf_drf.h> #include <uf_obj.h> ...
- NX二次开发-UFUN获取块的参数UF_MODL_ask_block_parms
NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_ui.h> UF_initialize( ...
- NX二次开发-UFUN工程图表格注释获取某一行的tag函数UF_TABNOT_ask_nth_row
NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...
- Android Telephony分析(五) ---- TelephonyRegistry详解
本文紧接着上一篇文章<Android Telephony分析(四) —- TelephonyManager详解 >的1.4小节.从TelephonyRegistry的大部分方法中: 可以看 ...
- [POI2011]SMI-Garbage
题目描述 http://main.edu.pl/en/archive/oi/18/smi The Byteotian Waste Management Company (BWMC) has drast ...