Redis的GEO和Stream数据类型,如何高效处理地理信息和实时数据流?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1531个文字,预计阅读时间需要7分钟。
GEO+GEO 是一种用于存储和操作地理位置信息的数据库类型。随着移动互联时代的发展,基于位置的服务(LBS)日益流行,例如附近的建筑等。GEO就是为了解决Redis对位置信息存储需求而设计的。
GEO
GEO 是用来存储并操作地理位置信息的数据类型。
随着移动互联网时代到来,LBS服务 (Location-Based Service) 愈发潮流,例如附近的建筑等。
GEO 就是为了解决 Redis 对位置信息的存储需求而诞生的。
内部实现
GEO 内部使用 Sorted Set 集合类型,使用 [GeoHash](Geohash - Wikipedia) 编码方法实现了经纬度到 Sorted Set 中元素权重分数的转换。
将经纬度保存到 Sorted Set 中,利用 Sorted Set 提供的“按权重进行有序范围查找”的特性,实现 LBS 服务中频繁使用的“搜索附近”的需求。
# 向locations添加
GEOADD locations 116.034579 39.903628 114
# 从locations获取10个5km内目标
GEORADIUS locations 116.054579 39.040650 5 km ASC COUNT 10
Stream
Stream 是 Redis 专为 消息队列 设计的数据类型。
本文共计1531个文字,预计阅读时间需要7分钟。
GEO+GEO 是一种用于存储和操作地理位置信息的数据库类型。随着移动互联时代的发展,基于位置的服务(LBS)日益流行,例如附近的建筑等。GEO就是为了解决Redis对位置信息存储需求而设计的。
GEO
GEO 是用来存储并操作地理位置信息的数据类型。
随着移动互联网时代到来,LBS服务 (Location-Based Service) 愈发潮流,例如附近的建筑等。
GEO 就是为了解决 Redis 对位置信息的存储需求而诞生的。
内部实现
GEO 内部使用 Sorted Set 集合类型,使用 [GeoHash](Geohash - Wikipedia) 编码方法实现了经纬度到 Sorted Set 中元素权重分数的转换。
将经纬度保存到 Sorted Set 中,利用 Sorted Set 提供的“按权重进行有序范围查找”的特性,实现 LBS 服务中频繁使用的“搜索附近”的需求。
# 向locations添加
GEOADD locations 116.034579 39.903628 114
# 从locations获取10个5km内目标
GEORADIUS locations 116.054579 39.040650 5 km ASC COUNT 10
Stream
Stream 是 Redis 专为 消息队列 设计的数据类型。

