Redis 位操作


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 的字符串序列。

參考:http://redisdoc.com/index.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM