bitmap数据结构,是基于二进制位来进行操作记录的,只有0和1两个状态。可以想象成一个数组,里面只有0或者1。
能干嘛呢?
现实中会有这些场景,比如统计用户信息,活跃用户和非活跃用户、登录的、未登录的用户,打卡的、未打卡的,像这种只有2个状态,并且数据量非常大的,就适合使用bitmap。
网上找了一个对比,可以帮助记忆下bitmap的优点。
一、setbit设置或者清空key的value(字符串)在offset处的bit值。
那个位置的bit要么被设置,要么被清空,这个由value(只能是0或者1)来决定。当key不存在的时候,就创建一个新的字符串value。
比如现在我设置一个用户的7天的打卡信息,1是打卡,0是未打卡。
setbitsign01setbitsign11setbitsign31setbitsign40setbitsign51setbitsign60setbitsign21二、getbit
对key所储存的字符串值,获取指定偏移量上的位(bit)。
getbitsign4三、bitcount
统计字符串被设置为1的bit数。
不存在的key被当成是空字符串来处理,因此对一个不存在的key进行BITCOUNT操作,结果为0。
bitcountsign把苹果咬哭
喜欢