内存开销小、效率高且操作简单,很适合用于签到这类场景。比如按月进行存储,一个月最多 31 天,那么我们将该月用户的签到缓存二进制就是 00000000000000000000000000000000,当某天签到将 0 改成 1 即可,而且 Redis 提供对 bitmap 的很多操作比如存储、获取、统计等指令,使用起来非常方便。
| 命令 | 功能 | 参数 |
| — | — | — |
| SETBIT | 指定偏移量 bit 位置设置值 | key offset value【0=< offset< 2^32】 |
| GETBIT | 查询指定偏移位置的 bit 值 | key offset |
| BITCOUNT | 统计指定字节区间 bit 为 1 的数量 | key [start end]【@LBN】 |
| BITFIELD | 操作多字节位域 | key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP/SAT/FAIL] |
| BITPOS | 查询指定字节区间第一个被设置成 1 的 bit 位的位置 | key bit [start] [end]【@LBN】 |
===========================================