Redis Bitmaps 位图

Redis Bitmaps 并不是一个实际的数据类型,而是定义在String类型上的面向bit二进制位的一组操作。

因为String是二进制安全的,最大长度512MB,适合构建2的32方个不同的bits,在每个bit位上存储0或1,适合存储boolean类型的信息。

这种方式记录,比使用key/value,最大的优点就是可以节省大量的存储空间。

1、单bit的赋值和查询提取操作,setbit key bit_number bit_value,getbit key,

其中setbit 命令 第一个参数为key,第二个参数为bit位数,从0开始计数,第三个参数为该bit位上存储的数值,值为1或者0,默认不写的话为0,

例如:setbit bitKey 100 1, setbit bitKey 10 1, setbit bitKey 0 1

getbit bitKey 10,返回1

2、基于一组bit的操作

bitcount bitKey,统计存储1的bit的个数。

bitpos bitKey 1,第一个为1的bit位置

bitpos bitKey 0, 第一个为0的bit位置

这个 bitcount 统计功能,记录网站用户在某段时间每天是否登录,登录的话记录1,不登录的话记录0,比如第1,3,10,12,15天登录了,可以设置

setbit user:123 1 1

setbit user:123 3 1

setbit user:123 10 1

setbit user:123 12 1

setbit user:123 1 51

然后使用bitcount user:123 统计实际多少天登录了。

3、bitop 位元操作

使用方法:bitop operation resultKey bitKey1 bitKey2 bitKey3

意思是 对bitKey1, bitKey2, bitKey3 几个key的数据进行operation操作,结果存储在 resultKey 中

operation 可以为and 逻辑并,or逻辑或,xor逻辑异或,not非

猜你喜欢

转载自blog.csdn.net/suoyx/article/details/114735856