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 ...
随机推荐
- opencv 图像细化
图像细化多用于机器人视觉,OCR字符识别等领域,细化后的图像经过去毛刺就成为了我们常说的图像的骨架. 该图像细化代码依据论文: T. Y. ZHANG and C. Y. SUEN A Fast P ...
- 12_通过 CR3 切换_读取指定进程数据
注意: cr3 切换 ,导致eip 指向的页面,改变为对应cr3 的页面:所以代码也变了:这里需要将这部分代码放入公共区域. 解决: 使用 类似前面 山寨 systemfastcallentry 的方 ...
- 开启SSH 使用SSH登录工具连接虚拟机
修改sshd_config文件,命令为:vi /etc/ssh/sshd_config将#PermitRootLogin without-password注释去掉修改为PermitRootLogin ...
- java创建一个空白zip
String zipath = localpath+zipname+".zip"; public static void createNewzip(String zipath) t ...
- Python自学:第五章 动手试一试 4-3
# -*- coding: GBK -*- numbers = ['] for number in numbers: print(number) 输出为: 1 2 3 4 5 6 7 8 9 10 1 ...
- 使用multiprocessing模块创建进程
#_author:来童星#date:2019/12/17from multiprocessing import Processimport timeimport os#两个子进程将会调用的两个方法de ...
- delphi RTL是什么?
第一种解释: RTL Run-Time Library,支持程序运行执行的函数库.是运行时间库,在运行时需要.Delphi的RTL包括System,SysUtils,Math三个单元RTL提供的大部分 ...
- Delphi中绘制圆角矩形的窗体
制作圆角矩形的窗体: 01.procedure TPortForm.FormCreate(Sender: Tobject); 02.var hr :thandle; 03.begin 04.hr:=c ...
- [JZOJ 5804] 简单的序列
思路: 似乎和某次培训的题很像啊... 将左括号记为1,右括号记为-1,那么最终一定加和为0,然后再求最小前缀和. 用dp解决即可. #include <bits/stdc++.h> us ...
- Codeforces 1154B Make Them Equal
题目链接:http://codeforces.com/problemset/problem/1154/B 题意:给定数组,可以给任意的的元素加上D 或者 减去D,如果能 使数组元素都相等,输出最小的D ...