如何统计网站在线人数?

利用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"

你可能感兴趣的:(如何统计网站在线人数?)