如何统计网站在线人数?

利用redis中的位图:

Redis字符串中的setbit key offset value(0,1)命令可以对字符串对象对应的位进行二进制赋值。用户的登陆状态可以用一个bit来表示,这样1亿个用户所需的内存空间仅为10M左右。

具体实现:首先在redis中初始化字符串:setbit loginstatus  10000 0。在中间件上,当用户登陆认证完成时,获取用户uid并在redis上设置登陆状态setbit loginstatus uid 1。获取在线用户数量实现:bitcount loginstatus,前端ajax轮询访问接口获取数据。

# 计算出 7 天都在线的用户BITOP"AND""7_days_both_online_users""day_1_online_users""day_2_online_users"..."day_7_online_users"# 计算出 7 在的在线用户总人数BITOP"OR""7_days_total_online_users""day_1_online_users""day_2_online_users"..."day_7_online_users"# 计算出两天当中只有其中一天在线的用户BITOP"XOR""only_one_day_online""day_1_online_users""day_2_online_users"

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在构建应用的时候, 我们经常需要对用户的一举一动进行记录, 而其中一个比较重要的操作, 就是对在线的用户进行记录。...
    大锅米饭阅读 330评论 0 1
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,926评论 0 10
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,494评论 0 9
  • 1 年轻时,我总想着,将来要找个爱我的人,做个贤妻良母,孝敬公婆的媳妇。 多年后却事与愿违。 在那样的原生家庭中,...
    风中百合168阅读 1,413评论 11 5
  • 以前很不理解为什么有人这么喜欢晒娃。让孩子的信息泄露出去多危险,被有心人或人贩子看到多不安全。 所以,就算我生了孩...
    童亨书斋阅读 175评论 0 0