大家好,今天分享redis bitmap的使用
BitMap 原本的含义是用一个比特位来映射某个元素的状态
。由于一个比特位只能表示 0 和 1 两种状态
,所以 BitMap 能映射的状态有限,但是使用比特位的优势是能大量的节省内存空间。
它是redis数据库当中一个特殊的数据结构
写一个实例讲解一下
比如说,一个星期有7天,员工打卡,打卡记为1 ,没有打卡则记为0
27.0.0.1:6379> SETBIT sign 0 1 //周一
(integer) 0
127.0.0.1:6379> SETBIT sign 1 0 //周二
(integer) 0
127.0.0.1:6379> SETBIT sign 2 0 //周三
(integer) 0
127.0.0.1:6379> SETBIT sign 3 1
(integer) 0
127.0.0.1:6379> SETBIT sign 4 1
(integer) 0
127.0.0.1:6379> SETBIT sign 5 0
(integer) 0
127.0.0.1:6379> SETBIT sign 6 1
(integer) 0
查看打没打卡(有)
127.0.0.1:6379> GETBIT sign 3
(integer) 1
127.0.0.1:6379> GETBIT sign 5
(integer) 0
127.0.0.1:6379> GETBIT sign 6
(integer) 1
127.0.0.1:6379> GETBIT sign 2
(integer) 0
127.0.0.1:6379> GETBIT sign 4
(integer) 1
有4天打卡
127.0.0.1:6379> BITCOUNT sign
(integer) 4
涉及与两种状态的统计都可以使用Redis的bitmp来操作,好了,就到这里了,谢谢大家