V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lib360
V2EX  ›  程序员

最近在做附近的人的需求,用了 Redis GEO 想知道下 Reids 里面存放坐标怎么存放比较合适?存放多了会出问题么?

  •  
  •   lib360 · 2018-12-18 09:34:51 +08:00 · 2899 次点击
    这是一个创建于 2152 天前的主题,其中的信息可能已经有所发展或是发生改变。
    像百度 高德这种,地图中搜索标记点这种需求
    数据那么多不知道怎么做的
    第 1 条附言  ·  2018-12-18 11:56:47 +08:00
    geohash 长度取值表示的范围

    前 1 位 2500KM 范围
    前 2 位 630KM 范围
    前 3 位 78KM 范围
    前 4 位 20KM 范围
    前 5 位 2.4KM 范围

    参考文章
    https://www.jianshu.com/p/4d47a8a69c55
    https://www.cnblogs.com/tgzhu/p/6211751.html
    10 条回复    2018-12-18 15:29:48 +08:00
    eliteYang
        1
    eliteYang  
       2018-12-18 09:43:03 +08:00
    自己存进去试一下就知道了,GEO 大部分人都不做这个行业
    Rico
        2
    Rico  
       2018-12-18 09:49:14 +08:00
    geohash
    moyaka
        3
    moyaka  
       2018-12-18 09:55:18 +08:00 via Android
    geohash +1
    ck65
        4
    ck65  
       2018-12-18 09:59:17 +08:00 via iPhone
    geohash 或用 h3 聚合。看具体查询和量级需求。
    lib360
        5
    lib360  
    OP
       2018-12-18 10:47:48 +08:00
    @ck65
    @moyaka
    @Rico

    原理看明白了,多谢几位
    但是新的问题来了
    问题:如何计算出当前地图缩放级别的 geohash 前缀字符串?

    比如:地图缩放级别是 10KM 半径范围,那怎么知道,这个半径范围取多少位 geohash
    2805408253
        6
    2805408253  
       2018-12-18 11:02:26 +08:00
    用 postgresql 啊,这个做 GEO
    oncewosiwo
        7
    oncewosiwo  
       2018-12-18 11:04:28 +08:00
    mongodb 的 geonear
    lib360
        8
    lib360  
    OP
       2018-12-18 11:32:28 +08:00
    找到了一张 GEOHash Length 对应的距离图,有这个应该就可以了


    https://www.jianshu.com/p/4d47a8a69c55
    ck65
        9
    ck65  
       2018-12-18 12:03:35 +08:00 via iPhone
    @lib360 根据具体场景定吧。我们 7 位够用。短了精度低,长了数据量大查询时间长。
    lib360
        10
    lib360  
    OP
       2018-12-18 15:29:48 +08:00
    @ck65 我准备分库分表,redis 分库,分 key 存储 ,到时候看看效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5361 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:34 · PVG 16:34 · LAX 00:34 · JFK 03:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.