GETBIT:获取二进制位的值

使用 GETBIT 命令,用户可以获取位图指定偏移量上的二进制位的值:

GETBIT bitmap offset

与 SETBIT 命令一样,GETBIT 命令也只能接受正数作为偏移量。

举个例子,对于值为 10010100 的位图 bitmap001 来说,可以通过执行以下命令,分别获取它在偏移量 0、偏移量 3、偏移量 5 以及偏移量 7 上的二进制位的值:

redis> GETBIT bitmap001 0
(integer) 1
redis> GETBIT bitmap001 3
(integer) 1
redis> GETBIT bitmap001 5
(integer) 1
redis> GETBIT bitmap001 7
(integer) 0

图8-4展示了这 4 个 GETBIT 命令对 bitmap001 进行取值的过程。

image 2025 01 03 21 57 18 532
Figure 1. 图8-4 GETBIT命令的执行过程

处理范围之外的偏移量

如果用户输入的偏移量超过了位图目前拥有的最大偏移量,那么 GETBIT 命令将返回 0 作为结果:

redis> GETBIT bitmap001 100 # bitmap001只包含8个二进制位
(integer) 0 # 100不在它的有效偏移量范围之内

换句话说,GETBIT 命令会把位图中所有不存在的二进制位的值都看作 0 。

其他信息

  • 复杂度:O(1)。

  • 版本要求:GETBIT 命令从 Redis 2.2.0 版本开始可用。