Redis 三种特殊数据类型之 Bitmap 类型
简单介绍
Bitmap 也叫位图,使用上有点类似于一个特殊的数组,和普通数组不一样的是,Bitmap 中存储的每一个元素都是一个位(bit)。
基本操作
127.0.0.1:6379> SETBIT bitmap 0 1 # 设置 Bitmap 第一个位的值为 0
(integer) 0
127.0.0.1:6379> SETBIT bitmap 1 0
(integer) 0
127.0.0.1:6379> SETBIT bitmap 2 1
(integer) 0
127.0.0.1:6379> SETBIT bitmap 3 1
(integer) 0
127.0.0.1:6379> SETBIT bitmap 4 0
(integer) 0
127.0.0.1:6379> SETBIT bitmap 5 1
(integer) 0
127.0.0.1:6379> GETBIT bitmap 3 # 获取 Bitmap 第三个位置的值
(integer) 1
127.0.0.1:6379> GETBIT bitmap 7 # 对于没有设置过值的位置,默认返回 0
(integer) 0
127.0.0.1:6379> BITCOUNT bitmap 0 5 # 统计 Bitmap 从第 0 个位置到第 5 个位置中,1 出现的次数
(integer) 4
127.0.0.1:6379> BITCOUNT bitmap # 统计整个 Bitmap 中 1 出现的次数
(integer) 4
应用场景和注意事项
- 可用于记录用户的活跃天数
- 可用于记录用户的打卡记录
- 其底层存储结构为字符串