一、前言
本篇文章注意用来记录下redis使用过程中的Bitmaps的应用,我们知道计算机中最小的存储单元是bit,一个字节包含有8个bit,Bitmaps 就是通过设置不同下标位置的数值,可以实现我们平时在开发过程中的点赞、签到小功能。
二、setbit命令
该命令设置一个 指定offset (下标位置从0开始)数值为value,存放在键值key 中,如下所示,我们设置四个命令
设置完成后,我们看存储在redis 中的数值为85,其实换算成二进制就是 01010101,我们看到下标1、3、5、7四个位置的数值都是1,其余位置都是0
三、getbit 命令
该命令可以获得指定key的指定下标位置的数值,如上面我们设置的那样,查询可以得到具体数值
四、bitcount命令
该命令是查询指定 start end 下标位置区间段内,数值为1的数量,默认查询的是全部位置的数值,需要注意的是这个下标位置是字符的下标位置,如下图所示,更加直观
其中testkey 存储的数值时01010101,我们可以看到bitcount testkey 0 0查询的是第一个字符区间内的数值1出现的次数,应该是4次,看命令执行的结果
五、bitop命令
这个命令中operation 可以是 and(交集) 、 or(并集) 、 not(非) 、 xor(异或) 等操作,将结果保存在目标destkey中。
我们先设置另外一个key
那么现在test 的数值就是01010100,testkey 原有的数值是01010101,他俩的交集运算结果就是01010100,转为十进制也就是84,如下所示
其余operation操作这里不再叙述,有兴趣的朋友可以自行研究下