首页/数据/Redis 进阶速查/Bitmap 位图签到与活跃标记
数据结构与选型42 条

Bitmap 位图签到与活跃标记

字符串按位寻址:SETBIT 标记、GETBIT 判断、BITCOUNT 统计,一年签到只需约 46 字节;BITOP 支持日/周/月位图与或运算。

Redis 进阶速查数据更新于 2026-10-12
内存公式字节数约为 offset 上限 / 8
命令SETBIT / GETBIT / BITCOUNT / BITOP / BITPOS

示例

示例
redis-cli SETBIT sign:20261012 10001 1
redis-cli GETBIT sign:20261012 10001
redis-cli BITCOUNT sign:20261012
redis-cli BITOP AND active:week a:1 a:2 a:3
redis-cli BITCOUNT active:week
offset 从 0 开始按位计数;把用户 ID 直接当 offset 时建议先做紧凑 ID 映射,避免超大稀疏位图。

易错点

  • 用户稀疏而 offset 巨大时,位数按 offset 上限分配会浪费大量内存
  • BITCOUNT 默认可统计整串,按 BYTE/BIT 限定范围可降低开销

数据来源与参考

  • Redis 官方文档:Bitmap 数据类型(SETBIT / BITCOUNT)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌