# Redis Bitfields

Redis Bitfields简介

Redis 位域允许您设置、递增和获取任意位长度的整数值。例如,您可以对从无符号 1 位整数到有符号 63 位整数的任何内容进行操作。

这些值使用二进制编码的 Redis 字符串存储。位域支持原子读、写和增量操作,使它们成为管理计数器和类似数值的好选择。

# 例子

假设您正在跟踪在线游戏中的活动。您希望为每个玩家维护两个关键指标:金币总量和杀死的怪物数量。因为您的游戏非常容易上瘾,所以这些计数器的宽度至少应为 32 位。

您可以用每个播放器一个位域来表示这些计数器。

  • 新玩家以 1000 金币开始教程(偏移量为 0)。
> BITFIELD player:1:stats SET u32 #0 1000
1) (integer) 0
  • 杀死俘虏王子的妖精后,添加获得的 50 金币并增加“被杀”计数器(偏移量 1)。
> BITFIELD player:1:stats INCRBY u32 #0 50 INCRBY u32 #1 1
1) (integer) 1050
2) (integer) 1
  • 向铁匠支付 999 金币,即可购买一把传说中的生锈匕首。
> BITFIELD player:1:stats INCRBY u32 #0 -999
1) (integer) 51
  • 阅读玩家的统计数据:
> BITFIELD player:1:stats GET u32 #0 GET u32 #1
1) (integer) 51
2) (integer) 1

# 基本命令

  • BITFIELD 原子地设置、递增和读取一个或多个值。
  • BITFIELD_RO 是 的只读变体 BITFIELD

# 表现

BITFIELD 是 O(n),其中n是访问的计数器的数量。

Last Updated: 4/18/2023, 8:45:33 AM