首页/数据/数据库速查/BITFIELD 位域读写(多字段紧凑存储)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

BITFIELD 位域读写(多字段紧凑存储)

在字符串上按任意位宽读写整数:一条命令里可组合多个 GET/SET/INCRBY,用 OVERFLOW 控制溢出策略;适合紧凑计数与协议字段。

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

读写与溢出

读写与溢出
BITFIELD counters SET u8 0 200 INCRBY u8 0 10 GET u8 0
# -> [0, 210, 210]
BITFIELD flags SET u1 0 1 GET u1 0
# 用 # 表示第 n 个该宽度字段的位置(#3 = 3*8 位)
BITFIELD counters GET u8 '#3'
# 饱和自增(不越界回绕)
BITFIELD acct OVERFLOW SAT INCRBY u8 0 100 INCRBY u8 0 100
类型u1..u63 无符号、i1..i64 有符号
偏移数字=位数;#n=第 n 个字段(n*位宽)
OVERFLOWWRAP 默认回绕 / SAT 饱和 / FAIL 报错,作用于其后的操作
返回各操作结果数组,SET 返回旧值
位域布局(哪个字段占第几位)必须由业务自己固化文档,改版时当作二进制协议处理。

易错点

  • 想用 u64:不允许(无符号最大 63 位)
  • OVERFLOW 顺序敏感:只影响它后面的 INCRBY,写在前面不生效

数据来源与参考

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

相关工具

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