©
本文档使用
php.cn手册 发布
SETBIT key offset value
自2.2.0起可用。
时间复杂度: O(1)
设置或清除存储在键的字符串值中偏移量的位。
该位根据值设置或清零,可以是0或1.当键不存在时,将创建一个新的字符串值。该字符串的增长,以确保它可以保持一点偏移量。所述偏移参数是必需的,以大于或等于0,且小于232(这个限制位图512MB)。当密钥字符串增长时,添加的位设置为0。
警告:当设置最后一个可能的位(偏移量等于232 -1)并且存储在键上的字符串值尚未包含字符串值或保存一个小字符串值时,Redis需要分配所有可阻塞服务器的中间存储器一段时间。在2010年的MacBook Pro上,设置232-1位(分配512MB)需要约300ms,设置位编号230-1(128MB分配)需要约80ms,设置位编号228-1(32MB分配)需要约30ms,设置位数字226 -1(8MB分配)需要〜8ms。请注意,一旦完成第一次分配,对同一个密钥的 SETBIT后续调用将不会产生分配开销。
整数回复:存储在偏移处的原始位值。
redis> SETBIT mykey 7 1 (integer) 0
redis> SETBIT mykey 7 0 (integer) 1
redis> GET mykey "\u0000"