开发者社区> 问答> 正文

【redis存储结构设计】存储坐标点及其多维度点击数403.10 禁止访问:配置无效 

我现在有个需求 
需要记录页面点击数据,上游吐到redis中,上游怎么吐到redis中对我们来说是透明的,
我们只用关心redis中如何存储就好。
查询需求为
1. 查询某天某页面某分辨率下所有有效点击总数和无效点击总数
2.查询某天某页面某分辨率下所有的点及点击数
3. 框选查询(相当于范围查询) 查询某天某页面某分辨率下 某些坐标点的有效点击总数和无效点击总数。
以及各种维度(比如点击时使用的浏览器,点击地区) 的有效点击数和无效点击数
当前实现是, 
一个zset记录全天某页面某分辨率的数据
  key为 date_pageid_分辨率  member为: 有效OR无效_浏览器_地区 score为点击数
每个点一个zset  
key为 date_pageid_分辨率_横坐标_纵坐标  member为: 有效OR无效_浏览器_地区 score为点击数
两个zset 做辅助范围查询 通过zrangebyscore 
date_pageid_分辨率_x member 为 date_pageid_分辨率_横坐标_纵坐标 score为横坐标X的值
date_pageid_分辨率_y member 为 date_pageid_分辨率_纵坐标_纵坐标 score为横坐标y的值
当前实现的问题是:查询速度太慢  全页面查询和全部点查询 可以利用异步任务进行缓存以优化查询速度
但是框选行为 因为范围不定,所以无法进行缓存,导致查询速度很慢。
不知道大家针对查询需求有没有什么更好的设计方案,请多指教。

展开
收起
kun坤 2020-05-28 13:25:20 725 0
1 条回答
写回答
取消 提交回答
  •  

    这个需求用全文检索比较好,可以试试xunsearch。 ######我能想到两个办法:

    1. 用支持地理信息索引的数据库,比如mongodb
      1. 将地图按照一定尺寸分成小块建索引,根据框选方块先找到这些小方块,然后将小方块里面的数据合并。
    2020-05-28 16:22:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载