Redis SETBIT 命令用于对 Redis 中的 KEY 所储存的 字符串值,设置或清除指定偏移量上的位。
位的设置或清除取决于 value 参数,当 value 是 0 时清除偏移量上的位,当 value 是 1 时设置偏移量上的位。当 KEY 不存在时,自动生成一个新的字符串值。
字符串会进行伸展以确保它可以将 value 保存在指定的偏移量上。当字符串值进行伸展时,空白位置以 0 填充。
offset 参数必须大于或等于 0 ,小于 2^32 (bit 映射被限制在 512 MB 之内)。对使用大的 offset 的 SETBIT 操作来说,内存分配可能造成 Redis 服务器被阻塞。
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 中的 KEY 所储存的字符串值,设置或清除指定偏移量上的位。Redis SETBIT 命令语法:
192.168.98.70:6379> SETBIT KEY offset value