Redis二进制位数组BitMap

2022-07-06 13:19:17

(1) 统计活跃用户

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

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

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

# SETBIT key pos [0/1]  设置key的第pos位置为0或者1> setbit bit01 # 设置第0位为100000001> setbit bit01 # 设置第2位为100000101> setbit bit00 # 设置第0位为000000100
# 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的位置
  • 作者:粪逗er
  • 原文链接:https://blog.csdn.net/weixin_36750623/article/details/84196132
    更新时间:2022-07-06 13:19:17