返回顶部
首页 > 资讯 > 数据库 >Redis中怎么用setbit统计活跃用户
  • 912
分享到

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

2024-04-02 19:04:59 912人浏览 安东尼
摘要

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

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

一、需求背景

首先,我们来看一下需求:网站统计用户登录的次数,具体如下:

  • 网站有1亿个用户,有经常登录的,也有不经常登录的

  • 如何来记录用户的登录信息

  • 如何查询活跃用户:比如:一周内,登录3次的

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

我们使用传统的关系型数据库(比如:oracle)来存储这样的数据

 每周产生7亿条数据,对于任何一个关系型数据库来说,都是非常不好维护的,对性能也会有很大的影响。

三、使用Redis的setbit操作

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

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

具体的代码类似下面这样:

redis.setbit(key, user_id, 1)

这样一次记录的复杂度是O(1),在Redis中速度非常快。

下面代码是在Redis CLI中执行的Demo演示,比如:用户ID为100的用户在星期一登录了网站,我们就通过setbit操作,把星期一对应的100位的值置为1,

127.0.0.1:6379> setbit monday 100 1(integer) 0

而我们通过每天换用一个不同的key来将每天的活跃用户状态记录分开存。并且可以通过一些与或运算计算出N天活跃用户,和连接N天活跃用户这样的统计数据。

如下图,第一行表示星期一的活跃用户情况,第二行表示周二的,以此类推。为样我们通过对N天的活跃用户记录取并集操作,就能得出在N天内活跃过的用户列表。

感谢各位的阅读,以上就是“Redis中怎么用setbit统计活跃用户”的内容了,经过本文的学习后,相信大家对Redis中怎么用setbit统计活跃用户这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: Redis中怎么用setbit统计活跃用户

本文链接: https://lsjlt.com/news/62932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis中怎么用setbit统计活跃用户
    这篇文章主要讲解了“Redis中怎么用setbit统计活跃用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中怎么用setbit统计活跃用户”吧!...
    99+
    2024-04-02
  • 【赵强老师】Redis案例分析:用setbit统计活跃用户
    一、需求背景 首先,我们来看一下需求:网站统计用户登录的次数,具体如下: 网站有1亿个用户,有经常登录的,也有不经常登录的 如何来记录用户的登录信息 如何查询活跃用户:比如:一周内,登录3次的 二、使用传统的关系型数据库 我们...
    99+
    2020-06-01
    【赵强老师】Redis案例分析:用setbit统计活跃用户
  • Redis怎样用bitmaps统计活跃用户?
    首先我们看一个场景:一个网站,需要统计一周内连续登陆的用户,以及一个月内登陆过的用户。如果用传统的数据库如Mysql来实现的话,很难做到。但如果用Redis来做的话,就很简便。Redis的集合类型和Bitm...
    99+
    2024-04-02
  • 位图法统计活跃用户
    Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活跃用户: 连续7天活动每月评,等等... 思路: Userid dt ...
    99+
    2024-04-02
  • 利用Redis统计网站在线活跃用户的方法
    前言 在工作中我们经常遇到这样的需求,要对某个在线网站的活跃用户数量进行统计。这里我们以redis为例,说明一下其实现的过程。 实现方法 在Redis中存在bitmap这种数据类型,这种数据类型是建立在s...
    99+
    2022-06-04
    在线 活跃 方法
  • 小程序怎么调动用户的活跃性
    这篇文章主要介绍了小程序怎么调动用户的活跃性的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序怎么调动用户的活跃性文章都会有所收获,下面我们一起来看看吧。一、如何使用优惠券  优惠券可降低产品的价格...
    99+
    2023-06-27
  • 酒店小程序怎么提高用户活跃度
    这篇文章主要讲解了“酒店小程序怎么提高用户活跃度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“酒店小程序怎么提高用户活跃度”吧!1、定期开启限时秒杀活动,吸引新用户,活跃老用户。比如酒店每周...
    99+
    2023-06-27
  • 微信小程序怎么调动用户的活跃性
    这篇文章主要讲解了“微信小程序怎么调动用户的活跃性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序怎么调动用户的活跃性”吧!一、如何使用优惠券优惠券可降低产品的价格,是一种常见的消费...
    99+
    2023-06-27
  • Redis中怎么统计独立用户访问量
    Redis中怎么统计独立用户访问量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用Hash哈希是Redis的一种基础数据结构,Redis...
    99+
    2024-04-02
  • 怎么在SpringBoot中使用Redis统计在线用户信息
    怎么在SpringBoot中使用Redis统计在线用户信息?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。springboot是什么springboot一种全新的...
    99+
    2023-06-14
  • SpringSession怎么通过Redis统计在线用户数量
    这篇“SpringSession怎么通过Redis统计在线用户数量”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring...
    99+
    2023-07-05
  • 怎么获取小程序新增或活跃用户的画像分布数据
    这篇文章主要介绍了怎么获取小程序新增或活跃用户的画像分布数据的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么获取小程序新增或活跃用户的画像分布数据文章都会有所收获,下面我们一起来看看吧。用户画像获取小程序新增...
    99+
    2023-06-26
  • SpringBoot使用Redis的zset统计在线用户信息
    目录在线用户统计的实现 基于数据库实现 基于Redis实现 Redis的Zset Zset的部分操作 一个示例 在线用户服务的实现 实现思路 使用示例内存消耗分析 最后 统计在线用户...
    99+
    2024-04-02
  • C#中的跳跃语句怎么用
    这篇文章主要讲解了“C#中的跳跃语句怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#中的跳跃语句怎么用”吧!C#跳跃语句由于break、continue和goto语句有助于跳跃到代码...
    99+
    2023-06-17
  • redis计数器怎么用
    redis 计数器提供了存储和操作计数器的数据结构。具体步骤包括:创建计数器:使用 incr 命令向现有键添加 1。获取计数器值:使用 get 命令获取当前值。递增计数器:使用 incr...
    99+
    2024-06-03
    redis
  • win10系统中用户账户被禁用怎么办
    这篇文章主要介绍“win10系统中用户账户被禁用怎么办”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10系统中用户账户被禁用怎么办”文章能帮助大家解决问题。解决方法/步骤:强制关机后开机,反复...
    99+
    2023-06-27
  • 怎么在Oracle中对用户中表的数据量进行统计
    怎么在Oracle中对用户中表的数据量进行统计?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。要想统计用户下所有表的数据量,可以查看user_t...
    99+
    2024-04-02
  • SpringBoot和redis中怎么使用Lettuce客户端
    这篇文章给大家介绍SpringBoot和redis中怎么使用Lettuce客户端,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。重写连接工厂实例,更改其LettuceClientConfiguration 为开启拓扑更新...
    99+
    2023-06-20
  • 怎么使用kms激活秘钥激活系统
    小编给大家分享一下怎么使用kms激活秘钥激活系统 ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如何使用kms激活秘钥激活系统?使用slmgr kms激活win1...
    99+
    2023-06-10
  • redis怎么获取当前用户
    通过 redis 获取当前用户,您可以:创建会话,每个用户都有唯一的 token。使用 redis 哈希表存储用户的身份信息,token 为键,详细信息为值。提供用户 token 从 r...
    99+
    2024-05-21
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作