Redis操作图位----------再谈bit操作

 用户一年的签到记录,如果用String,就要用365个key/value,比较麻烦,通过位图可以简化这个操作。

他的统计很简单:

每天记录一个位,365个位,大概 46个字节,这样可以有效节省存储空间,如果有一天想统计用户一共签到多少天,统计1  的个数即可

对于位的操作。可直接操作对应的字符串(ger/set),可以直接操作位(getbit/setbit)

##  基本操作

Redis 的基本操作可以归为两类:

###  零存整取

例如存储java字符串:

|字符|ASCII|二进制|

j      73   01001010

a

v

a

接下来存储:

 

###  整存领取

存进去一个字符串,但是通过位操作获取字符串。

     

 ###   统计

例如: 签到记录 0101011111

1表示签到的天,0表示未有签到的天

 可以使用bitcount 直接算出1 的个数

bitcount 中可以统计的起始位置

就Java 这个字段来时 起始位置是bitcount name 0 0  这就指的是j\

bitpos 就是第一次出现1 或者 0的位置

 第一个字符的 1 出现的位置

、当第二位为1是,就算着前一个字符

当第二个为0是,就不算前一个字符

bitfield k1 get u4 0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值