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

面试题:设计一个活跃用户过滤器

  •  
  •   luw2007 · 172 天前 · 892 次点击
    这是一个创建于 172 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据用户访问情况,设计一个判断用户是否近 60 天登陆过的接口。 要求实时线上验证接口,尽可能做到高效,最小存储,活跃用户月 UV 按照千万设计。

    防止有人说马后炮,放上 sha256 68ff01575b0c1f604cc3e6e3fc4a1cf69d6088ee001e037ece19befa652ed1a4

    6 回复  |  直到 2019-06-26 16:24:32 +08:00
        1
    deming   172 天前
    使用 redis setbit
    第一天登录了 setbit user1 0 1
    第 3 天登录了 setbit user1 2 1
    ……

    判断登录天数 bitcount user1 start end
        2
    luw2007   171 天前
    @deming 历史数据清除么? 也就是年末发了一波 push,冷用户都来了。然后 redis 内存爆炸了。
        3
    jingxyy   171 天前
    这不是记一个最近登陆日期就行了么?用户信息表里一般都有这个字段吧 查的时候判断一下记录值是不是在过去 60 天就行了
        4
    KannaMakino   171 天前
    记录最后登陆时间。。
        5
    leegoo   171 天前
    用户量很大的话,redis 把数据存这么长的时候会不会有点....
        6
    luw2007   165 天前
    @leegoo 是的,如果用户量很大,redis 需要优化。不然直接 key/value 存储不就好了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4298 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 03:41 · PVG 11:41 · LAX 19:41 · JFK 22:41
    ♥ Do have faith in what you're doing.