Redis SETBIT命令

Redis SETBIT命令教程

Redis SETBIT 命令用于对 Redis 中的 KEY 所储存的 字符串值,设置或清除指定偏移量上的位。

位的设置或清除取决于 value 参数,当 value 是 0 时清除偏移量上的位,当 value 是 1 时设置偏移量上的位。当 KEY 不存在时,自动生成一个新的字符串值。

字符串会进行伸展以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。

offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。对使用大的 offset 的 SETBIT 操作来说,内存分配可能造成 Redis 服务器被阻塞。

Redis SETBIT命令详解

语法

192.168.98.70:6379> SETBIT KEY offset value

参数

参数 作用
KEY 要设置的 KEY
offset 要设置的偏移量
value 要设置的具体的值

返回值

指定偏移量原来储存的位。

时间复杂度

O(1)

可用版本

>= 2.2.0

案例

设置位

value 为 1,设置值

# 设置值 192.168.98.70:6379> SETBIT haicoder.net 10 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 9 (integer) 0 192.168.98.70:6379> DEL haicoder.net (integer) 1

我们首先,使用 SETBIT 命令,设置键 haicoder.net 的偏移量 10 上的值为 1。接着,使用 GETBIT 命令,获取键 haicoder.net 的偏移量 10 上的值,为刚才设置的 1。

最后,使用 GETBIT 命令,获取键 haicoder.net 的偏移量 9 上的值,为 0,因为此位没有设置值。

清除位

value 为 0,清除值

# 清除值 192.168.98.70:6379> SETBIT haicoder.net 10 1 (integer) 0 192.168.98.70:6379> SETBIT haicoder.net 9 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 9 (integer) 1 192.168.98.70:6379> SETBIT haicoder.net 10 0 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 0 192.168.98.70:6379> DEL haicoder.net (integer) 1

我们首先,使用 SETBIT 命令,设置键 haicoder.net 的偏移量 10 上的值为 1。使用 SETBIT 命令,设置键 haicoder.net 的偏移量 9 上的值为 1。

接着,使用 GETBIT 命令,获取键 haicoder.net 的偏移量 10 上的值,为刚才设置的 1。使用 GETBIT 命令,获取键 haicoder.net 的偏移量 9 上的值,为刚才设置的 1。

最后,使用 SETBIT 命令,设置键 haicoder.net 的偏移量 10 上的值为 0,即清除该位上的值。使用 GETBIT 命令,获取键 haicoder.net 的偏移量 10 上的值,为 0。

全部清空

将各位的值全部清 0

# 清除值 192.168.98.70:6379> SETBIT haicoder.net 10 1 (integer) 0 192.168.98.70:6379> SETBIT haicoder.net 9 1 (integer) 0 192.168.98.70:6379> GETBIT haicoder.net 10 (integer) 1 192.168.98.70:6379> GETBIT haicoder.net 9 (integer) 1 192.168.98.70:6379> SETBIT haicoder.net 10 0 (integer) 1 192.168.98.70:6379> SETBIT haicoder.net 9 0 (integer) 1 192.168.98.70:6379> EXISTS haicoder.net (integer) 1 192.168.98.70:6379> DEL haicoder.net (integer) 1

我们首先,使用 SETBIT 命令,设置键 haicoder.net 的偏移量 10 上的值为 1。使用 SETBIT 命令,设置键 haicoder.net 的偏移量 9 上的值为 1。

使用 GETBIT 命令,获取键 haicoder.net 的偏移量 10 上的值,为刚才设置的 1。使用 GETBIT 命令,获取键 haicoder.net 的偏移量 9 上的值,为刚才设置的 1。

使用 SETBIT 命令,设置键 haicoder.net 的偏移量 10 上的值为 0,即清除该位上的值。使用 SETBIT 命令,设置键 haicoder.net 的偏移量 9 上的值为 0,即清除该位上的值。

此时键的所有为的值都为 0 ,但使用 EXISTS 命令,判断键 haicoder.net 仍然存在。

Redis SETBIT命令教程

Redis SETBIT 命令用于对 Redis 中的 KEY 所储存的字符串值,设置或清除指定偏移量上的位。Redis SETBIT 命令语法:

192.168.98.70:6379> SETBIT KEY offset value