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)

相关推荐

  • 百万级MySQL的数据量怎么快速完成数据迁移

    技术百万级MySQL的数据量怎么快速完成数据迁移这篇文章主要讲解了“百万级MySQL的数据量怎么快速完成数据迁移”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“百万级MyS

    攻略 2021年11月18日
  • oracle赋予用户创建方法的权限(oracle赋予用户调用某个过程权限)

    技术Oracle中定义者权限和调用者权限的示例分析这篇文章给大家分享的是有关Oracle中定义者权限和调用者权限的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定义者权限:定义者权限指

    攻略 2021年12月13日
  • 11.6 3Python 第六章 函数

    技术11.6 3Python 第六章 函数 11.6 3Python 第六章 函数1.运行结果如右图,函数在定义时没有返回值,体现在return的位置错啦!
    其余错误:函数错误,修改后如下:2. 错误2

    礼包 2021年11月7日
  • 织梦火车站和discuz哪个好(织梦模板和discuz区别)

    技术织梦是如何与discuz论坛整合一起应用本篇文章为大家展示了织梦是如何与discuz论坛整合一起应用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  成功在DedeCMS 5

    攻略 2021年12月22日
  • c++ string类

    技术c++ string类 c++ string类string类
    将StrVec类的一些变量进行全局替换就能得到String类
    1、string替换为char
    2、str替换为c,strs替换为c
    3、

    礼包 2021年12月3日
  • 如何理解rman中的incarnation

    技术如何理解rman中的incarnation如何理解rman中的incarnation,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。inc

    攻略 2021年11月30日