现在的场景是这样的
原表 500w 左右的数据量 现在每 20 分钟会有 2-3w 的增量数据
需求: 根据数据表中的一列(cid) 统计 同一种 cid 出现次数最多的前 20 名
我自己的想法是 后台写一个脚本 定时读取这个表 读入 redis 利用 ZINCRBY 做计数器
key 是这样的: user_top:xxx(对应的 cid) 每读一行 相应的 key 加一 最后统计只需要 zrangebyscore
然后在另一张日志表记录本次读到的 id 下次从这个地方接着读
那么如果 redis 突然挂了或者发生其他原因导致服务不可用 那么即使做了 aof 也无法保证数据能百分百恢复 这样的情况下 该如何解决 , 或者还有别的什么解决方法来进行统计呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.