关于redis:华为云PB级数据库GaussDBfor-Redis介绍第四期高斯-Geo的介绍与应用

摘要:高斯Redis的大规模地理位置信息存储的解决方案。

1、背景

LBS(Location Based Service,基于地位的服务)有十分宽泛的利用场景,最常见的利用就是POI(Point of Interest)的查问,例如用户查找左近的人,左近的餐厅,左近的外卖商家等等。LBS的实现须要数据库存储地理位置信息,开源Redis是一个性能强、效率高、使用方便的缓存数据库,实现了地理位置存储的性能,能够用于LBS的数据存储。

开源Redis 3.2以上版本的Geo性能反对了地理位置信息存储管理,然而内存限度导致没有大规模利用。GaussDB(for Redis)(下文简称高斯Redis)兼容开源Redis的Geo性能,应用磁盘代替内存,冲破了开源Redis的内存限度,能够完满解决Geo的大规模利用问题。

2、开源Redis Geo介绍

Redis的Geo性能反对如下 6 个 Geo 的相干操作:

  • geoadd:增加某个地理位置的坐标。

  • geopos:获取某个地理位置的坐标。

  • geodist:获取两个地理位置的间隔。

  • geohash:获取某个地理位置的geohash值。

  • georadius:依据给定地理位置坐标获取指定范畴内的地理位置汇合。

  • georadiusbymember:依据给定地理位置获取指定范畴内的地理位置汇合。

Redis Geo性能的空间索引采纳 GeoHash 原理,配合zset汇合存储,查问效率靠近 log(N)。

3、为什么开源Redis Geo没有广泛应用?

存储地理位置信息的利用十分宽泛,而开源Redis Geo性能也能够存储地理位置信息,并且查问效率高,为什么没有失去大规模的利用呢?

剖析存储地理位置信息的场景,都有如下特点:

  • 数据量大

大部分场景存储地理位置信息的数据量都是TB级以上的,开源Redis的数据全副寄存在内存中,节点的内存大小固定,要反对大数据量的地理位置信息存储,必须减少节点数,这会造成老本过高、大集群保护艰难等问题。

  • 数据持续增长

随着用户的增长,地理位置信息的数据也在持续增长,要求底层存储可能无损扩容。但开源Redis扩容须要从新划分hash槽进行数据迁徙,必定会影响业务。

  • 高并发读写

开源Redis主从模式下只有主节点可写,主节点高并发数据写入、高并发数据读出,写入速度过高容易造成主从沉积,数据失落。

除此之外,还须要思考备份复原,数据一致性,扩容,高可用等数据库系统能力。

  • 备份复原

开源Redis提供RDB和AOF形式备份数据,但当数据规模大时,RDB形式复原的数据一致性和完整性较差,AOF形式数据恢复的效率低。

  • 数据一致性

开源Redis的主从采纳异步复制,会呈现数据不统一的状况。

  • 高可用

开源Redis如果同时挂掉一对主从节点,局部数据将不可用,容错能力弱。

4、高斯Redis为什么适合?

高斯Redis基于华为自研分布式存储系统DFV,反对PB级大规模的数据存储。解决了开源Redis高老本、存储数据量小、数据不统一等问题,具备秒扩容、超可用、强统一、低成本、主动备份、抗写能力强的劣势。

5、实用场景

高斯Redis Geo性能实用于数据量大、读写频繁的场景。在外卖平台、点评平台、找房平台中,餐馆的数据、外卖骑手的数据、用户的数据、房源的数据这些数据随着用户增长,数据量过亿,对应的地理位置信息的数据量可到数TB级别,正是高斯Redis实用的场景。上面介绍在不同场景中Geo性能的利用。

5.1外卖场景:

(1)用户下完外卖订单后,应用geoadd命令退出骑手的地位。

(2)应用geopos命令,用户可取得骑手的具体位置。

(3)应用georadius/ georadiusbymember命令骑手查看左近可配送的订单。

(4)应用geodist命令用户可取得骑手的间隔。

5.2点评场景:

(1)新的店铺退出点评平台,应用geoadd命令,增加新店铺的地位。

(2)应用geopos命令,用户取得店铺的具体位置。

(3)应用geodist命令,用户可取得与店铺的间隔。

(4)应用georadius/ georadiusbymember,用户可查找间隔500米范畴的店铺。

5.3找房场景:

(1)新的房源退出房源平台中,应用geoadd命令,增加新房源的地位。

(2)应用geopos命令,用户可取得房源的具体位置。

(3)应用geodist命令,用户可取得与房源的间隔。

(4)应用georadius/ georadiusbymember命令,用户查找左近1km范畴内的房源。

6、总结

开源Redis的Geo性能查问效率高,但存在存储容量小、抗写能力弱、可用性差等显著毛病,导致了其Geo性能始终没有广泛应用。高斯Redis冲破了开源Redis的内存限度,以高性能磁盘存储数据,具备秒扩容、超可用、强统一、低成本、主动备份、抗写能力强的特点,因而高斯Redis实用于大量地理位置信息存储的场景。

7、完结

本文作者:华为云高斯Redis团队。

杭州西安深圳简历投递:yuwenlong4@huawei.com

更多技术文章,关注高斯Redis官网博客:https://bbs.huaweicloud.com/community/usersnew/id_1614151726110813

PS:值此开年洽购季之际,企业新用户购买GaussDB (for Redis)4U16G任意存储规格,内存可享3个月3折。另外还有多款云数据库包年低至2.7折,0门槛抽千元大奖、新购满额送华为手机P40 Pro 5G等多重福利,链接:https://activity.huaweicloud.com/dbs_Promotion/index.html

本文分享自华为云社区《华为云PB级数据库GaussDB(for Redis)揭秘第四期:高斯 Redis Geo的介绍与利用》,原文作者:高斯Redis官网博客。

点击关注,第一工夫理解华为云陈腐技术~

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据