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 ...
随机推荐
- 证券secuerity英语secuerity安全
中文名:证券 外文名:security.secuerity 类别:经济权益凭证统称 组成:资本证券.货币证券和商品证券 作用:用来证明持者权益的法律凭证 图集 目录 1 发展历程 ? 世界 ? 中国 ...
- Scala字符穿插值器
从2.10.0版本开始,Scala提供了三种创新的字符串插值方法: s.f 和 raw 于2.11.0版本开始,用于模式匹配patter match中 小结: s: s"Hello, $na ...
- Prometheus+Grafana监控MySQL、Redis数据库
俗话说,没有监控的系统就是在裸奔,好的监控就是运维人员的第三只手,第三只眼.本文将使用prometheus及Grafana搭建一套监控系统来监控主机及数据库(MySQL.Redis). 1. 安装G ...
- tornado基础
一.初识tornado 1.什么是tornado 全称Tornado Web Server,是一种Web服务器软件的开源版本. 2.特点 作为Web框架,它是一个轻量级的Web框架,类似于另一个Pyt ...
- Python创建virtualenv虚拟环境方法
一.通过virtualenv软件创建 安装: -pip3 install virtualenv 创建虚拟环境: -(1)virtualenv wannings-ms- ...
- RDPGuard6.1.7之后的问题
RDPGuard是一款保护远程桌面RDP端口不被暴力猜解的软件,说下在使用RDP Guard中遇到的一些问题: 1.似乎D版RDPGuard 6.1.7或之后的版本,启用IP Cloud会自动将大量I ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- c# WF 第7节 对控件的基本操作
本节内容: 1:修改控件的大小 2:控件的顺序 3:控件的对齐 4:移动button实例 1: 修改控件的大小 第一种: 第二种 : 一次操作多个控件: 选择一个控件.按住ctrl -- 再选择一个控 ...
- HTML与CSS学习笔记(5)
1.文字阴影?(针对文字) text-shadow: 例如 text-shadow: 10px 10px 10px blue;四个值分别是 x y blur color blur表示模糊值,越大越模糊 ...
- keras 学习笔记(二) ——— data_generator
data_generator 每次输出一个batch,基于keras.utils.Sequence Base object for fitting to a sequence of data, suc ...