天天看點

SETBIT key offset value

設定或者清空key的value(字元串)在offset處的bit值。

那個位置的bit要麼被設定,要麼被清空,這個由value(隻能是0或者1)來決定。當key不存在的時候,就建立一個新的字元串value。要確定這個字元串大到在offset處有bit值。參數offset需要大于等于0,并且小于232(限制bitmap大小為512)。當key對應的字元串增大的時候,新增的部分bit值都是設定為0。

警告:當set最後一個bit(offset等于232-1)并且key還沒有一個字元串value或者其value是個比較小的字元串時,Redis需要立即配置設定所有記憶體,這有可能會導緻服務阻塞一會。在一台2010MacBook Pro上,offset為232-1(配置設定512MB)需要~300ms,offset為230-1(配置設定128MB)需要~80ms,offset為228-1(配置設定32MB)需要~30ms,offset為226-1(配置設定8MB)需要8ms。注意,一旦第一次記憶體配置設定完,後面對同一個key調用SETBIT就不會預先得到記憶體配置設定。

##傳回值

integer-reply:在offset處原來的bit值

##例子

本文作者:陳群

本文來自雲栖社群合作夥伴rediscn,了解相關資訊可以關注redis.cn網站。

繼續閱讀