Redis新增位置查询功能 - Redis Geo

移动互联网中基于位置信息的服务(Location Based Service,LBS)越来越重要。但是,目前位置信息的使用过程中存在诸多挑战如相邻计算不准确等。由于经常面对海量数据请求,通常位置服务的计算都需要数据库来完成,Redis Geo模块因此而生,旨在提供精准而且稳定的位置服务

在位置服务的挑战中,常见的是计算两个位置是否相邻的问题。位置信息由一个四元组构成,(经度、纬度、海拔、时间),在使用过程中比较常用的是经纬度。想要进行相邻计算,需要一个二维索引。问题是现有的基于简单的一维索引和划范围搜索实现的二维索引,基本只适用于整数查询,并不适用于经纬度这种位置的相似度查询

NoSQL中,Mongodb对位置服务的支持较好,稳定地支持了foursquare等应用。而HBase也曾推出相关教程支持在应用中引入位置服务。作为优秀NoSQL数据库的典范,Redis在位置计算方面却略显薄弱。为此,意大利程序员Salvatore Sanfilippo(antirez@GitHub)维护了一个专门为Redis增加位置计算的分支。发布之后,获得领域内的一致认可,短短几个月收获多达1万3千余个星标,有人进一步贡献了Redis Geo的Docker镜像

Redis Geo的细节可以参考antirez给出的文档页面(https://matt.sh/redis-geo),其中包括了Redis Geo的基本使用,例如添加经纬度、计算经纬度相似度、计算城市之间的包含关系等多种位置计算功能。antirez还进一步解释了Redis Geo的工作原理,以及该模块在Benchmark上运行的性能表现,每秒可达近5百万次编解码,能满足大部分位置服务应用的需求

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-07-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

怎样去阅读源码,这篇文章值的你一读

作者:刘欣 公众号:码农翻身 链接:http://mp.weixin.qq.com/s/PDhEKM2XG_qzOmBjWb-M7Q "没有经验的技术...

33060
来自专栏大数据

FPGA、DSP、ARM比较

ARM ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。A...

32190
来自专栏SeanCheney的专栏

《利用Python进行数据分析·第2版》第1章 准备工作1.1 本书的内容1.2 为什么要使用Python进行数据分析1.3 重要的Python库matplotlibIPython和JupyterSc

下载本书:http://www.jianshu.com/p/fad9e41c1a42(更新为GitHub链接) 下载本书代码:https://github.c...

47870
来自专栏IT派

争论|摩尔定律已死?GPU会取代CPU的位置吗?

如果你觉得好的话,不妨分享到朋友圈。 京举办的NVIDIA GTC China会议中,无论是AI智能运算,还是服务器数据中心、智能城市,甚至还有去年很火热但是...

37340
来自专栏阮一峰的网络日志

Twine试用感想

上一次,我写了《Freebase再研究》以后,徐廉之网友赠送了我一个Twine.com的加入邀请。

8510
来自专栏数据派THU

【独家】并行计算性能分析与优化方法(PPT+课程精华笔记)

[导读]工业4.0、人工智能、大数据对计算规模增长产生了重大需求。近年来,中国高性能计算机得到突飞猛进的发展,从“天河二号”到“神威·太湖之光”,中国超级计算机...

43080
来自专栏Python爬虫实战

Python爬虫之六:智联招聘进阶版

运行平台: Windows Python版本: Python3.6 IDE: Sublime Text 其他工具: Chrome浏览器

28510
来自专栏阮一峰的网络日志

程序员小测试:保守派 vs 自由派

最近,我在阅读 Steve Yegg 的文集《程序员的呐喊》。 ? 这是一本非常有趣的书,里面甚至包含了一个小测试(原文),区分一个程序员到底是保守派还是自由派...

30660
来自专栏SDNLAB

超大规模数据中心网络

一、计算模式的演进 图 1 计算模式的演进 计算纪年: 1、大型机时代:20世纪60~70年代,计算机体积大、价格高,支持成百上千用户同时操作。 2、个人电...

51160
来自专栏吉浦迅科技

DAY80:阅读Compute Capability 3.x

When a multiprocessor is given warps to execute, it first distributes them among...

27040

扫码关注云+社区

领取腾讯云代金券