Redis二进制位数组BitMap

本文探讨了使用Redis的bit操作来记录和查询用户活跃状态的方法。通过setbit、getbit、bitcount等命令,可以高效地管理和统计一定时间内登陆网站的用户数量,特别适用于大规模用户场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1) 统计活跃用户

  1. 1亿个用户,用户有频繁登陆的,也有不频繁登陆的
  2. 如何记录用户的登陆信息
  3. 如何查询活跃用户,如一周内登陆3次的

(2) 一段时间内,曾经登陆过某网站的会员人数

Redis提供了setbit、getbit、bitcount、bitop、BITPOS 5个命令用于处理二进制位数组。

# SETBIT key pos [0/1]  设置key的第pos位置为0或者1
> setbit bit 0 1 # 设置第0位为1   00000001
> setbit bit 0 1 # 设置第2位为1   00000101
> setbit bit 0 0 # 设置第0位为0   00000100
# GETBIT bit 3   # 获取第3位的值
(integer) 1
# BITCOUNT key [start end]
> 获取bitmap指定范围[start end],位值为1的总个数
# BITOP operation destkey key [key ...]  # 对一个或多个bitmap 进行位元操作,并将结果保存到 destkey 上。
  operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种:
   - AND:并
   - OR:或
   - XOR:异或
   - NOT:非
# BITPOS key targetBit [start] [end]
计算bitmap指定范围[start end],第一个偏移量对应的值等于targetBit的位置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值