redis 学习(15)-- GEO
GEO
GEO 简介
- Redis 3.2添加新特性
- 功能:存储经纬度、计算两地距离、范围计算等
- 基于ZSet实现
- 删除操作使用
zrem key member
GEO 相关命令
1.geoadd key longitude latitude member [lon lat member...]
- 含义:增加地理位置信息
- longitude :经度
- latitude : 纬度
- member : 标识信息
2.geopos key member1 [member2...]
- 含义:获取地理位置信息
3.geodist key member1 member2 [unit]
- 含义:获取两个地理位置的距离
- unit取值范围
- m(米,默认)
- km(千米)
- mi(英里)
- ft(英尺)
4.georadius key longitude latitude unit [withcoord] [withdist] [withhash] [COUNT count] [sort] [store key] [storedist key]
- 含义:以给定的经纬度为中心,返回包含的位置元素当中,与中心距离不超过给定最大距离的所有位置元素。
- unit取值范围
- m(米)
- km(千米)
- mi(英里)
- ft(英尺)
- withcoord:将位置元素的经度与纬度也一并返回
- withdist:在返回位置元素的同时,将距离也一并返回。距离的单位和用户给定的范围单位保持一致
- withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。
- sort取值范围
- asc:根据中心位置,按照从近到远的方式返回位置元素
- desc:根据中心位置,按照从远到近的方式返回位置元素
- store key:将返回结果而的地理位置信息保存到指定键
- storedist key:将返回结果距离中心节点的距离保存到指定键
5.georadiusbymember key member radius unit [withcoord][withdist][withhash][COUNT count][sort][store key][storedist key]
- 含义:以给定的元素为中心,返回包含的位置元素当中,与中心距离不超过给定最大距离的所有位置元素。
- unit取值范围
- m(米)
- km(千米)
- mi(英里)
- ft(英尺)
- withcoord:将位置元素的经度与纬度也一并返回
- withdist:在返回位置元素的同时,将距离也一并返回。距离的单位和用户给定的范围单位保持一致
- withhash:以52位的符号整数形式,返回位置元素经过geohash编码的有序集合分值。用于底层应用或调试,实际作用不大。
- sort取值范围
- asc:根据中心位置,按照从近到远的方式返回位置元素
- desc:根据中心位置,按照从远到近的方式返回位置元素
- store key:将返回结果而的地理位置信息保存到指定键
- storedist key:将返回结果距离中心节点的距离保存到指定键
演示
由于我的 redis 版本是 3.0.7,geo 功能是在 redis-3.2 后引入的,所以这里我直接贴出演示命令,就不在重装 redis 了。
127.0.0.1:6381> geoadd cities:locations 116.28 39.55 beijing
(integer) 1
127.0.0.1:6381> geoadd cities:locations 117.12 39.08 tianjin 114.29 38.02 shijiazhuang 118.01 39.38 tangshan 115.29 38.51 baoding
(integer) 4
127.0.0.1:6381> geopos cities:locations tianjin
1) 1) "117.12000042200088501"
2) "39.0800000535766543"
127.0.0.1:6381> geodist cities:locations tianjin beijing km
"89.2061"
127.0.0.1:6379> georadiusbymember cities:locations beijing 150 km
1) "beijing"
2) "tianjin"
3) "tangshan"
4) "baoding"
redis 学习(15)-- GEO的更多相关文章
- Redis学习手册(目录)
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- Redis学习手册——转载
转载出处:http://www.cnblogs.com/stephen-liu74/archive/2012/04/16/2370212.html 为什么自己当初要选择Redis作为数据存储解决方案中 ...
- (转)redis 学习笔记(1)-编译、启动、停止
redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先 ...
- Redis学习手册
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- redis学习大全
http://blog.csdn.net/menergy/article/details/17577985 http://blog.sina.com.cn/s/blog_64008ed70102uy ...
- Redis学习——Redis持久化之AOF备份方式保存数据
新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系.子类(新技术)比父类(老技术)更加的强大! 在前面介绍了Redis学习--Redis ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- redis学习-集合set常用命令
redis学习-集合set常用命令 1.sadd:添加一个元素到集合中(集合中的元素无序的并且唯一) 2.smembers:查看集合中所有的元素(上图事例) 3.srem:删除结合中指定的元素 4 ...
- Python操作redis学习系列之(集合)set,redis set详解 (六)
# -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...
随机推荐
- 记一次zipkin和spring cloud bus冲突
问题表现spring boot 版本 2.0.6spring cloud 版本 Finchley.SR2 使用spring-cloud-starter-zipkin + 独立部署的zipkin 进行链 ...
- (一)C语言的四大数据类型
- CodeForce 137B
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description " ...
- LeetCode 105. 从前序与中序遍历序列构造二叉树(Construct Binary Tree from Preorder and Inorder Traversal)
题目描述 根据一棵树的前序遍历与中序遍历构造二叉树. 注意:你可以假设树中没有重复的元素. 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9, ...
- legend3---lavarel多对多模型操作实例
legend3---lavarel多对多模型操作实例 一.总结 一句话总结: 在多对多模型中,增加关系表的数据 需要 弄一个和关系表一对多的模型关系 1.在lavarel关系模型中,课程和标签表是多对 ...
- pandas.Series.value_counts
pandas.Series.value_counts Series.value_counts(normalize=False, sort=True, ascending=False, bins=Non ...
- 微服务一键启动脚本shell没有环境变量的
#!/bin/bash#######################################################export JAVA_HOME=/root/data/app/jd ...
- LC 963. Minimum Area Rectangle II
Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from these ...
- windows下安装RabbitMQ【我】
windows下 安装 rabbitMQ rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实 ...
- OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
问题 环境:Nova.Cinder.Glance 都对接了 Ceph RBD 后端存储. 以往的操作包括上传镜像.创建卷.挂载卷都是一切正常的,但突然出现了无法挂载卷的问题,而且还是因为 Ceph 客 ...