Redis中怎么用setbit统计活跃用户

技术Redis中怎么用setbit统计活跃用户这篇文章主要讲解了“Redis中怎么用setbit统计活跃用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中怎么

本文主要讲解“如何使用setbit统计Redis中的活跃用户”。本文的讲解内容简单明了,易学易懂。现在请跟随边肖的思路,学习学习“如何使用setbit统计Redis中的活跃用户”。

一、需求背景

首先来看看需求:网站统计用户登录次数,如下:

网站有1亿用户,有的经常登录,有的不经常登录。

如何记录用户的登录信息?

如何查询活跃用户:比如一周登录三次。

00-1010我们使用传统的关系数据库(如Oracle)来存储这样的数据。

对于任何关系数据库来说,每周生成7亿条数据都是非常难以维护的,并且会对其性能产生很大影响。

二、使用传统的关系型数据库

Redis支持基于String类型值的二进制位的设置操作。通过将用户id对应于值上的一位,并将该位设置为对应于活动用户,可以用一个值记录所有活动用户的信息。如下图所示,下图中位图的9位设置为1,表示这9位对应的用户是今天的活跃用户。第15位代表uid为15的用户,第1位代表uid为0的用户。(如果你的uid不是从1开始,比如从100000开始,其实也可以用uid减去初始值来表示位数,比如100000个用户对应位图的第一位数字)。

Redis中怎么用setbit统计活跃用户

具体代码如下:

Redis.setbit(key,user_id,1)的记录复杂度为O(1),在Redis中非常快。

以下代码是在Redis CLI中执行的演示演示。例如,当用户ID为100的用户在周一登录网站时,我们通过setbit操作将周一对应的100位的值设置为1。

17 . 0 . 0 . 1:6379 setbit monkey 1001(整数)0,我们每天使用不同的键来分隔每天的活动用户状态记录。并且通过一些AND-OR运算,可以计算出N天活跃用户和连接的N天活跃用户的统计量。

如下图所示,第一行显示周一的活跃用户,第二行显示周二的活跃用户,以此类推。例如,我们可以通过合并n天内活跃用户的记录,得到n天内活跃用户的列表。

感谢阅读。以上就是“如何使用setbit统计Redis中的活跃用户”的内容。看完这篇文章,相信你对如何在Redis中使用setbit统计活跃用户有了更深的理解。具体用法需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/67445.html

(0)

相关推荐

  • JavaScript实现换肤效果(换背景)

    技术JavaScript实现换肤效果(换背景) JavaScript实现换肤效果(换背景)JavaScript实现换肤效果(换背景)
    本文实例为大家分享了JavaScript实现换肤效果的具体代码,供大

    礼包 2021年11月1日
  • 电话查公司,查企业联系方式有哪些方法

    技术电话查公司,查企业联系方式有哪些方法您好,我来为您解答电话查公司。就目前来说,查询企业联系方式,有以下几种办法:1、打114电话查询。
    114可以帮您查询您所需要的企业的联系方式,你只需要把自己想要查询的企业的名称报

    生活 2021年10月26日
  • Go调度器是如何处理线程阻塞的

    技术Go调度器是如何处理线程阻塞的本篇内容主要讲解“Go调度器是如何处理线程阻塞的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go调度器是如何处理线程阻塞的”吧!怎么让我们

    攻略 2021年11月19日
  • 为什么看不到微信好友的朋友圈,为什么看不到微信好友的朋友圈

    技术为什么看不到微信好友的朋友圈,为什么看不到微信好友的朋友圈微信看不到对方的朋友圈估计是对方设置了权限为什么看不到微信好友的朋友圈,不允许你看她/他的朋友圈。或者是对方没有发过朋友圈,朋友圈里无内容。设置朋友圈查看权限

    生活 2021年10月27日
  • C#的ServerSuperIO有什么特点

    技术C#的ServerSuperIO有什么特点这篇文章主要讲解了“C#的ServerSuperIO有什么特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#的Serve

    攻略 2021年11月26日
  • uvm config机制(uvm环境进入scoreboard的死循环)

    技术如何浅析UVM概念中的raise/drop objection如何浅析UVM概念中的raise/drop objection,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴

    攻略 2021年12月18日