首页/数据/数据库速查/位图命令(SETBIT / GETBIT / BITCOUNT / BITOP)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

位图命令(SETBIT / GETBIT / BITCOUNT / BITOP)

字符串即位数组:按 bit 存布尔状态,1 亿用户签到只需 12.5MB;BITCOUNT 统计置位数、BITOP 做多键位运算(AND/OR/XOR)。

数据库速查数据更新于 2026-10-12

示例

示例
SETBIT sign:1001:202610 0 1        # 用户 1001 第 1 天签到
SETBIT sign:1001:202610 3 1        # 第 4 天签到
GETBIT sign:1001:202610 3           # 1
BITCOUNT sign:1001:202610           # 2(本键置位数)
BITCOUNT sign:1001:202610 0 0       # 限定字节范围统计
BITOP AND active:both sign:1001:202610 sign:1002:202610   # 两人都签到的位
offset位下标,可为大数(自动扩容)
BITCOUNT统计 1 的个数,可按字节区间
BITOPAND/OR/XOR/NOT 结果存到目标键
offset 与内存成正比:SETBIT k 1000000000 1 会立刻分配约 128MB;稀疏场景先算清楚最大 offset。

易错点

  • 大 offset 直接写:单键瞬间膨胀上兆内存,签到类应把日期拆键控制长度
  • BITCOUNT 默认全量扫描大字符串,超大位图要带 BIT 或 BYTE 范围参数

数据来源与参考

  • Redis 官方文档: SETBIT
  • Redis 官方文档: BITCOUNT
  • Redis 官方文档: BITOP

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌