【Redis 位操作】
1、GETBIT key offset
對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。
當 offset 比字符串值的長度大,或者 key 不存在時,返回 0 。
2、SETBIT key offset value
對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。
位的設置或清除取決於 value 參數,可以是 0 也可以是 1 。
當 key 不存在時,自動生成一個新的字符串值。
字符串會進行伸展(grown)以確保它可以將 value 保存在指定的偏移量上。當字符串值進行伸展時,空白位置以 0 填充。
offset 參數必須大於或等於 0 ,小於 2^32 (bit 映射被限制在 512 MB 之內)。
對使用大的 offset 的 SETBIT 操作來說,內存分配可能造成 Redis 服務器被阻塞。具體參考 SETRANGE 命令,warning(警告)部分。

3、BITOP operation destkey key [key ...]
對一個或多個保存二進制位的字符串 key 進行位元操作,並將結果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR 這四種操作中的任意一種:
BITOP AND destkey key [key ...],對一個或多個key求邏輯並,並將結果保存到destkey。BITOP OR destkey key [key ...],對一個或多個key求邏輯或,並將結果保存到destkey。BITOP XOR destkey key [key ...],對一個或多個key求邏輯異或,並將結果保存到destkey。BITOP NOT destkey key,對給定key求邏輯非,並將結果保存到destkey。
除了 NOT 操作之外,其他操作都可以接受一個或多個 key 作為輸入。
4、BITOP operation destkey key [key ...]
對一個或多個保存二進制位的字符串 key 進行位元操作,並將結果保存到 destkey 上。
operation 可以是 AND 、 OR 、 NOT 、 XOR 這四種操作中的任意一種:
BITOP AND destkey key [key ...],對一個或多個key求邏輯並,並將結果保存到destkey。BITOP OR destkey key [key ...],對一個或多個key求邏輯或,並將結果保存到destkey。BITOP XOR destkey key [key ...],對一個或多個key求邏輯異或,並將結果保存到destkey。BITOP NOT destkey key,對給定key求邏輯非,並將結果保存到destkey。
除了 NOT 操作之外,其他操作都可以接受一個或多個 key 作為輸入。
處理不同長度的字符串
當 BITOP 處理不同長度的字符串時,較短的那個字符串所缺少的部分會被看作 0 。
空的 key 也被看作是包含 0 的字符串序列。

