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)

相关推荐

  • 如何理解Elasticsearch倒排索引与分词

    技术如何理解Elasticsearch倒排索引与分词本篇内容主要讲解“如何理解Elasticsearch倒排索引与分词”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解E

    攻略 2021年10月23日
  • spark大数据实例开发教程(spark项目一天处理多少数据量)

    技术Spark如何快速构建数仓项目这篇文章将为大家详细讲解有关Spark如何快速构建数仓项目,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 关于“Spark如何快速构建数仓项目”这

    攻略 2021年12月16日
  • openwrt 怎么重置网络设置(openwrt节点订阅怎么设置)

    技术Openwrt中luci界面的设置步骤以及作为二级路由的设置是什么这篇文章主要介绍了Openwrt中luci界面的设置步骤以及作为二级路由的设置是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章

    攻略 2021年12月18日
  • 分析PostgreSQL创建函数的过程

    技术分析PostgreSQL创建函数的过程本篇内容主要讲解“分析PostgreSQL创建函数的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析PostgreSQL创建函

    攻略 2021年11月5日
  • spring log4j配置(log4j配置详解)

    技术logger4j.properties和log4j.xml怎么配置这篇文章主要介绍“logger4j.properties和log4j.xml怎么配置”,在日常操作中,相信很多人在logger4j.propertie

    攻略 2021年12月17日
  • 怎么编写Linux内核模块HelloWorld

    技术怎么编写Linux内核模块HelloWorld本篇内容介绍了“怎么编写Linux内核模块HelloWorld”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情

    攻略 2021年11月30日