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

BITOP 位运算与活跃统计

对多个字符串按位做 AND/OR/XOR/NOT,结果写进目标键;配合 bitmap 做留存/活跃统计:AND 求「都活跃」、OR 求「任一天活跃」。

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

活跃/留存示例

活跃/留存示例
SETBIT day:1 1001 1
SETBIT day:1 1002 1
SETBIT day:2 1002 1
SETBIT day:2 1003 1
BITOP AND ret:1-2 day:1 day:2      # 两天都活跃 -> 只有 1002
BITOP OR  ret:1+2 day:1 day:2      # 任一天活跃
BITCOUNT ret:1-2                   # 统计人数
BITOP NOT ret:not day:1            # 单源取反(按无符号位语义)
语法BITOP <AND|OR|XOR|NOT> destkey key [key...]
返回destkey 的字节长度
NOT只允许一个源键
空键比长度短的一侧按 0 补齐
BITOP 是单线程执行,源键几 MB 时耗时会到毫秒级甚至更高;大 bitmap 统计尽量放低峰或用离线任务。

易错点

  • 结果键被覆盖写入(先清空旧值):不要拿正在用的键当 destkey
  • 位序:bit 0 是首字节的最高位,按字节直觉算偏移会错位

数据来源与参考

  • Redis 官方文档: BITOP
  • Redis 官方文档: Bitmaps

相关工具

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