Redis GETBIT命令

Redis GETBIT命令教程

Redis GETBIT 命令用于对 RedisKEY 所储存的 字符串 值,获取指定偏移量上的位(bit)。当 OFFSET 比字符串值的长度大,或者 KEY 不存在时,返回 0 。

Redis GETBIT命令详解

语法

192.168.98.70:6379> GETBIT KEY OFFSET

参数

参数 作用
KEY 要获取的 KEY
OFFSET 偏移量

返回值

字符串值指定偏移量上的位(bit)。

时间复杂度

O(1)

可用版本

>= 2.2.0

案例

KEY不存在

当 KEY 不存在时,返回 0

# KEY 不存在 192.168.98.70:6379> EXISTS haicoder.net (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 0

首先,我们使用 EXISTS 命令,判断键 haicoder.net 不存在。接着,使用 GETBIT 命令,获取一个不存在的 KEY 的第 1 位 bit ,返回 0 。最后,再次使用 GETBIT 命令,获取一个不存在的 KEY 的第 10 位 bit ,同样返回 0 。

KEY 存在

当 KEY 存在时,会返回对应位的 bit 值

# KEY 存在 192.168.98.70:6379> SETBIT haicoder.net 2 1 # haicoder.net = 101100 (integer) 0 192.168.98.70:6379> SETBIT haicoder.net 3 1 (integer) 0 192.168.98.70:6379> SETBIT haicoder.net 5 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 0 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 2 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 3 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 4 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 5 (integer) 1 192.168.98.70:6379> DEL haicoder.net (integer) 1

首先,使用 SETBIT 命令,设置键 haicoder.net 的第 2 位的值为 1,第 3 位的值为 1和第 5 位的值也为 1。

接着,使用 GETBIT 命令,获取键 haicoder.net 的第 0 位的值为 0,第 1 位的值为 0,第 2 位的值为 1,第 3 位的值也为 1,第 4 位的值为 0,第 5 位的值为 1。

超出长度

获取超出值的长度时,返回 0

# 超出值的长度 192.168.98.70:6379> SETBIT haicoder.net 1 1 # haicoder.net = 10 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 0 192.168.98.70:6379> DEL haicoder.net (integer) 1

首先,使用 SETBIT 命令,设置 haicoder.net 的第 1 位的值为 1。接着,使用 GETBIT 命令,获取 KEY 的第 10 位的值,为 0。

Redis GETBIT命令总结

Redis GETBIT 命令用于对 Redis 的 KEY 所储存的字符串值,获取指定偏移量上的位(bit)。Redis GETBIT 命令语法:

192.168.98.70:6379> GETBIT KEY OFFSET