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 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...
随机推荐
- 0.JQuery学习
jQuery 教程 jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. jQuery 简介 jQuery 库可以通过一行简单的标记被添加到网页中 ...
- linux vmware 安装步骤
一.下载vmware软件 二.下载centos镜像文件 三.安装步骤 以上相当于于硬件设备已经准备ok,接下来安装软件
- 20165207 Exp6 信息搜集与漏洞扫描
Exp6 信息搜集与漏洞扫描 一.实验内容 1. 查询基本信息 1.1. 使用whois.nslookup.dig命令查询DNS和ip信息 使用whois查询某个我经常用的学习网站的域名(去掉了前缀的 ...
- 移动端的头部标签和 meta
使用 HTML5 doctype,不区分大小写 <!DOCTYPE html> 更加标准的 lang 属性写法 http://zhi.hu/XyIa <html lang=" ...
- 类 kotlin(13)
Kotlin 中使用关键字 class 声明类class Invoice {} 类声明由类名.类头(指定其类型参数.主 构造函数等) 和由大括号包围的类体构成.类头和类体都是可选的:如果一个类没有类体 ...
- linux 之 pthread_create 实现类的成员函数做参数
在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...
- 给JAVA的eclipse IDE 在线安装 SVN插件 / 给 eclipse 添加打开所在的文件夹功能
http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 首先,在这个网址找着最新在线安装链接 就是那个 Links for ...
- Struts2与Servlet API的解耦访问
- 在Latex中插入Python代码
这里指的插入是指最终能在生成的pdf中显示高亮的Python代码. 在Latex中插入Python代码,需要一个第三发的宏包pythonhighlight: https://github.com/ol ...
- SVN+MAVEN项目打包
题记:项目打包bash脚本 环境准备 maven版本:3.5.2 mvn -v #查看maven的版本信息 svn版本:1.4.0 svn --version #查看svn版本信息 1.update_ ...