bitmap:通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。8个bit可以组成一个Byte,所以bitmap可以极大的节省空间。

1. setbit

语法:setbit key offset value

由于是bit存储,所以key在offset处的值,只能是0或者1.

1.1 记录用户签到情况

setbit user:1 1 1  #用户第一天签到情况
setbit user:1 2 1 #用户第二天签到情况

bitcount user:1 #统计用户总共签到了几次 value为1 的会被统计

如果要在页面上展示,只能通过getbit 一个个获取出来,然后判断value值判断当天是否签到

1.2 统计活跃用户

bitop语法:bitop operation destkey key [key …]

对一个或多个保存二进制位的字符串 key 进行位运算,并将结果保存到 destkey 上

operation 可以是 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种

AND:对一个或多个 key 求逻辑并,并将结果保存到 destkey
OR:对一个或多个 key 求逻辑或,并将结果保存到 destkey
XOR:对一个或多个 key 求逻辑异或,并将结果保存到 destkey
NOT:对给定 key 求逻辑非,并将结果保存到 destkey

setbit stat_日期 用户id 登陆状态

setbit stat_20200510 1 1
setbit stat_20200510 2 1
setbit stat_20200510 3 1
setbit stat_20200511 2 1
setbit stat_20200511 3 1
setbit stat_20200511 4 1

统计两天累计总共登陆了多少用户

bitop or stat1 stat_20200510 stat_20200511
bitcount stat1

统计两天都有登陆的用户

bitop and stat2 stat_20200510 stat_20200511
bitcount stat2