Redis資料型別String之bitmap
今天來總結一下最近學些的redis資料型別string之bitmap 操作
相關命令
先用一下程式碼檢視redis 的string型別都支援哪些方法
或者從redis 中文文件檢視
點我直接過去
相關的命令,就出現了
和bitmap 相關的有一下幾個
setbit
使用說明:setbit key offset value
key 就是你想設定的key
offset 就是想設定的下標
value 就是你想設定的值,這裡只能是0或者1
看下邊的例子
首先我先setbit k1 1 1
那麼儲存到redis 後的資料就是 下邊這個樣子
然後在setbit k1 7 1 ,儲存到redis 就是 01000001 這是一個ASCII 編碼
他對應的值為A,所以通過get k1 能得到A 的結果
bitcount
統計key 中為1 的數量
使用說明 bitcount key [start end]
key 就是要統計的key
start 就是開始下標
end 就是結束下標
剛才放進去的值為 0100001 , 所以獲取到的結果為2
bitop
這裡貼一下官網的說明吧
對一個或多個儲存二進位制位的字串 key 進行位元操作,並將結果儲存到 destkey 上。 BITOP 命令支援 AND 、 OR 、 NOT 、 XOR 這四種操作中的任意一種引數: BITOP AND destkey srckey1 srckey2 srckey3 ... srckeyN ,對一個或多個 key 求邏輯並,並將結果儲存到 destkey 。 BITOP OR destkey srckey1 srckey2 srckey3 ... srckeyN,對一個或多個 key 求邏輯或,並將結果儲存到 destkey 。 BITOP XOR destkey srckey1 srckey2 srckey3 ... srckeyN,對一個或多個 key 求邏輯異或,並將結果儲存到 destkey 。 BITOP NOT destkey srckey,對給定 key 求邏輯非,並將結果儲存到 destkey 。 除了 NOT 操作之外,其他操作都可以接受一個或多個 key 作為輸入。 執行結果將始終保持到destkey裡面。
使用說明 bitop and|or|xor|not destkey key1 key2
and or xor not 這裡只能是這四種運算
destkey 最終的到的key 名稱
key1 第一個key
key2 第二個key
這裡建立了一個k2
將k1 、k2的或 運算結果儲存到了k3
redis 儲存k1 的結果為 01000001
redis儲存k2 的結果為 01000001
and 運算結果 有0得0(1&1等於1,1&0等於0,0&1等於0,0&0等於0)
or 運算結果 有1 得1(1|1等於1,1|0等於1,0|1等於1,0|0等於0)
xor 運算結果 兩個二進位制位不同,結果為1,否則為0
所以k3 的結果依然是A
bitpos
使用說明
BITPOS key bit [start] [end]
返回字串裡面第一個被設定為1或者0的bit位。
key 就是你要查詢的key
bit 1或者0
start 開始的下標
end 結束的下標
放到redis 中的值為00100000
所以取到的值為 2