DT_Stone 在 <Redis 高手心法> 读书笔记 | P7-数据结构- Geospatial 中发帖
Geospatial
基于位置服务
location based services
特点:
以"我" 为中心,搜索附近的人
以"我"的地理位置为准, 计算出别人和我之间的距离
按我与别人距离的远近排序.筛选出离我最近的用户
第三方库计算经纬度和距离的外接矩形(当前位置为圆心的外接矩形)
spatial4j
// 代码删除了
存储特点来看 是一个 key:localtion field user1 (lng ,lat),似乎可以用 hash 来存储,但是实际上,我们还需要范围查询,hash 结构的数据是无序的,
GeoHash
redis 的 GEO 底层是 sorted sets 实现的.通过使用 geohash 编码将经纬度两个数转换为一个值存如 score
GeoHash 编码
核心思想是区间二分
将经纬度分别变成一个 N 位二进制数
将经纬度的二进制编码合并
...