布隆过滤器的底层就是Bitmap
将每一个bit对应一天,1表示签到,0表示这一天没有签到
BitMap有关的命令:
SetBit:向offset这个位置存入1个0或者1
GetBit:获取offset这个位置的值(0或者1)
BitCount:统计BitMap中值为1的bit数量
现在使用Bitmap实现统计一个用户一个月签到情况,用31bit来存储,1表示这一天签到了,0表示这一天没有签到
下面表示第一天签到了
setbit bitmap1 0 1
继续:
setbit bitmap1 0 1
setbit bitmap1 1 0
setbit bitmap1 2 1
setbit bitmap1 3 0
setbit bitmap1 4 1
setbit bitmap1 5 1
setbit bitmap1 6 0
setbit bitmap1 7 1
此时bitmap中存储的就是10101101
接下来查询用户第三天是否签到:
getbit bitmap1 2
返回(integer)1 表示这天签到了
统计总共签到了几天
bitcount bitmap1
返回(integer) 5