Redis命令geoXXX
1. Redis命令geoXXX
1.1. 介绍
自Redis 3.2开始,Redis基于geohash和有序集合提供了地理位置相关功能。
Redis Geo模块包含了以下6个命令:
- GEOADD: 将给定的位置对象(纬度、经度、名字)添加到指定的key;
- GEOPOS: 从key里面返回所有给定位置对象的位置(经度和纬度);
- GEODIST: 返回两个给定位置之间的距离;
- GEOHASH: 返回一个或多个位置对象的Geohash表示;
- GEORADIUS: 以给定的经纬度为中心,返回目标集合中与中心的距离不超过给定最大距离的所有位置对象;
- GEORADIUSBYMEMBER: 以给定的位置对象为中心,返回与其距离不超过给定最大距离的所有位置对象。
1.2. 实践
1.2.1. geoadd和geopos
- 加入某些人位置数据,并查看特定人物位置
127.0.0.1:6379> geoadd mypos 120.000000 30.000000 "me"
(integer) 1
127.0.0.1:6379> geoadd mypos 120.000000 31.000000 "lili" 121.000000 32.000000 "lilei"
(integer) 2
127.0.0.1:6379> geopos mypos me
1) 1) "120.00000089406967"
2) "30.000000249977013"
1.2.2. geodist
- 查看两人间的距离,其中最后一个参数不填表示单位米
m米km千米mi英里ft英尺
127.0.0.1:6379> geodist mypos me lili
"111226.3808"
127.0.0.1:6379> geodist mypos me lili m
"111226.3808"
127.0.0.1:6379> geodist mypos me lili km
"111.2264"
127.0.0.1:6379> geodist mypos me lili mi
"69.1130"
127.0.0.1:6379> geodist mypos me lili ft
"364915.9475"
127.0.0.1:6379> geodist mypos lili lilei
"146166.0591"
1.2.3. geohash
- 对应位置的hash表示
127.0.0.1:6379> geohash mypos lili lilei
1) "wtt26emk4e0"
2) "wtwn13mt820"
1.2.4. georadius
- 找到目标集合中距离特定经纬度距离在一定值以内的集合元素
- 下列参数很好解释 mypos集合 119 30 经度纬度 120千米范围内的集合元素有哪些,这个方法很有用,可以用来作为附近的人查询
127.0.0.1:6379> georadius mypos 119 30 120 km
1) "me"
127.0.0.1:6379> georadius mypos 121 31 200 km
1) "me"
2) "lili"
3) "lilei"
1.2.5. georadiusbymember
- 相比上面的可能会更接近实际用法,查询特定对象附近特定距离内的对象
127.0.0.1:6379> georadiusbymember mypos lili 120 km
1) "lili"
2) "me"
127.0.0.1:6379> georadiusbymember mypos me 200 km
1) "me"
2) "lili"
127.0.0.1:6379> georadiusbymember mypos lilei 200 km
1) "lilei"
2) "lili"
1.3. 总结
- redis的优势就是各种数据结构和更方便的计算命令,熟练掌握redis的各种命令,有利于我们优化我们的代码提升系统吞吐量
Redis命令geoXXX的更多相关文章
- Redis命令拾遗二(散列类型)
本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址 http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...
- redis命令总结
Redis命令总结 redis 127.0.0.1:6379> info #查看server版本内存使用连接等信息 redis 127.0.0.1:6379> client list ...
- redis如何执行redis命令
Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...
- 常用 redis 命令(for php)
Redis 主要能存储 5 种数据结构,分别是 strings,hashes,lists,sets 以及 sorted sets. 新建一个 redis 数据库 $redis = new Redis( ...
- Redis命令大全&中文解释&在线测试命令工具&在线中文文档
在线测试命令地址:http://try.redis.io/ 官方文档:http://redis.io/commands http://redis.io/documentation Redis 命令参考 ...
- Redis命令
redis的常用命令主要分为两个方面.一个是键值相关命令.一个是服务器相关命令(redis-cli进入终端) 1.键值相关命令 keys * 取出当前所有的key exists name 查看n是否有 ...
- redis命令参考
http://doc.redisfans.com/ 进入redis命令行模式方式: 1.进入redis安装目录 2.运行redis-cli
- Redis 命令参考
Redis 命令参考 http://redis.readthedocs.org/en/latest/index.html
- Redis 命令总结
Redis命令总结 连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsa ...
随机推荐
- 一次Ubuntu16系统的找回root密码的过程
一 背景知识介绍 ubuntn系统的默认配置,超级用户root的密码是随机的,如果没提前对root用户的密码进行设置, 是不能直接通过root的身份来进行某些操作的,必须使用sudo命令,并通过普通用 ...
- ORACLE基础之oracle锁(oracle lock mode)详解
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusiv ...
- appium----Monkey测试
做过app测试的应该都知道Monkey测试,今天简单的介绍下Monkey如何测试 什么是Monkey monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等, ...
- 12. final修饰符
一.final修饰符概述 1. final可以修饰类.变量和方法 2. final修饰的类.变量和方法不可改变 3. 不允许为final变量重新赋值,子类不允许覆盖父类的final方法,final类不 ...
- drf框架知识总结
- 1【西北师大-2108Java】第一次作业成绩汇总
[西北师大-2108Java]第一次作业成绩汇总 经过本次作业的练习,了解了Java最基本的知识和Java的发展:了解了Java到底是一门怎样的语言,也知道了学习Java的乐趣,懂得了去选择Java开 ...
- CF798D Mike and distribution
CF798D Mike and distribution 洛谷评测传送门 题目描述 Mike has always been thinking about the harshness of socia ...
- 第三方系统平台如何对接gooflow2.0
第一步,参与者数据源配置 目前提供3种参与者数据源(员工,角色,部门),还有一种sql语句 XML配置如下 <?xml version="1.0" encoding=&quo ...
- 【ECharts】1.学习ECharts从现在开始:第一个Echart图形
首先,你需要下载ECharts所需的文件,我使用的是echarts-2.0.2版本,点击这里下载:echarts-2.0.2 下载解压后,下面有一系列文件夹,其中build中有我们需要引入的JS文件, ...
- POJ 1094 (传递闭包 + 拓扑排序)
题目链接: POJ 1094 题目大意:有 1 ~ N 个大写字母,且从 A 开始依次 N 个.再给你 M 个小于的关系,比如 A < B ,让你判断三种可能: 1.在第 i 个关系罗列之后,是 ...