位圖介紹以及基本用法
位圖
1.bitmap介紹
位圖不是真正的數據類型,它是定義在字符串類型中,一個字符串類型的值最多能存儲512M位元組的內容
那麼一個字符串的位上限就是:512M=2^32bit
2.位圖的一些命令
-
setbit
設置某一位上的值
語法:SETBIT key offset value (offset位偏移量,從0開始)
-
getbit
獲取某一位上的值
語法:GETBIT key offset
獲取到的值是ASCLL表中對應的值
-
bitpos
返回指定值0或1在指定區間上首次出現的下標
語法:BITPOS key bit [start] [end](位元組索引,0表示第一個位元組)
-
bitop
語法: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 的字符串序列
-
bitcount
統計指定區間上值為1的個數
語法:BITCOUNT key [start] [end] start end 位元組的索引 正方向
從左向右從0開始,注意官方start、end是位,測試後是位元組
BITCOUNT key [start] [end] start end 位元組的索引 負方向
從右向左從-1開始,注意官方start、end是位,測試後是位元組