Redis新数据类型(1)-Bitmaps
目录
1 前言
Redis提供了Bitmaps这个“数据类型”,可以实现对应的位操作:
1)Bitmaps本身不是一种数据类型,实际上它就是字符串(key-value),但是它可以对字符串进行位操作
2)Bitmaps单独提供了一套命令,所以在redis命令中使用Bitmaps和使用字符串的方法不太相同。可以将Bitmaps想向成一个以位为单位的数组,数组的每个单位只能存储0和1,数组的下标在Bitmaps中叫作偏移量
2 操作命令
setbit<key><offest><value>设置Bitmaps中某个偏移量的值

将key为users:20220130中偏移量分别为:1,6、11、15、19的值分别设置为1
注意:在第一次初始化Bitmaps时,假如偏移量非常大,那么整个初始化过程执行比较慢,可能会造成redis的阻塞
getbit<key><offest>获取Bitmaps中某个偏移量中的值

若偏移量中有值则返回该值,没值则返回0
bitcount
统计字符串被设置为1的bit数。一般情况下,给定的整个字符串都会被进行计数,通过指定额外的start或end参数,可以让计数只在特定的位上进行。start和end参数的设置,都可以使用负数值:比如-1表示最后一个位,而-2表示倒数第二个位

bitop and(or/not/xor)
bitop and unique:users:and:20220130_31 unique:users:20220131 unique:users:20220130
bitop是一个复合操作,它可以做多个Bitmaps的and(交集)、or(并集)、not(非)、xor(异或)并将结果保存在destkey中

3 Bitmap和Set对比


当用户很多时,用Bitmap存储可以很有效的节约内存空间,但用户量较少时,Bitmap就不是很合适

3 Bitmap和Set对比
浙公网安备 33010602011771号