公告
财富商城
积分规则
提问
发文
2020-09-29 08:33发布
Root(大扎)
如题,我想在一个业务系统中统计实时在线人数,有什么比较好的方式?
把登录用户的在状态记录在redis
比如 离线=0 在线=1
redis sortedset<loginId, upTime> 记录在线人数 登录: zadd 退出: zrem 已登录请求: zadd(update) 性能考虑可以N秒更新一次,上次更新时间可以用session cookie jwt 之类保持 N秒周期移除掉线的人: zremrangebyscore key 0 datetime.now - x minute(多久没请求则视为掉线) N秒或者实时刷新在线人数: zcard直接拿, zcount now-x minute now 实时统计在线人数。
如果你是单机, 直接一个memorycahce 就完事了。。。
这个要看业务,看要怎么统计
这个要怎么统计不是由你的业务决定的吗? 哪来的插件
最多设置5个标签!
把登录用户的在状态记录在redis
比如 离线=0 在线=1
redis sortedset<loginId, upTime> 记录在线人数
登录: zadd
退出: zrem
已登录请求: zadd(update) 性能考虑可以N秒更新一次,上次更新时间可以用session cookie jwt 之类保持
N秒周期移除掉线的人: zremrangebyscore key 0 datetime.now - x minute(多久没请求则视为掉线)
N秒或者实时刷新在线人数: zcard直接拿, zcount now-x minute now 实时统计在线人数。
如果你是单机, 直接一个memorycahce 就完事了。。。
这个要看业务,看要怎么统计
这个要怎么统计不是由你的业务决定的吗? 哪来的插件