1. 程式人生 > 其它 >Redis資料型別String之bitmap

Redis資料型別String之bitmap

技術標籤:redisredisbitmapstring

今天來總結一下最近學些的redis資料型別string之bitmap 操作

相關命令

先用一下程式碼檢視redis 的string型別都支援哪些方法
在這裡插入圖片描述
或者從redis 中文文件檢視
點我直接過去
相關的命令,就出現了
和bitmap 相關的有一下幾個

setbitsetbit

使用說明:setbit key offset value
key 就是你想設定的key
offset 就是想設定的下標
value 就是你想設定的值,這裡只能是0或者1

看下邊的例子
setbit demo
首先我先setbit k1 1 1
那麼儲存到redis 後的資料就是 下邊這個樣子

在這裡插入圖片描述
然後在setbit k1 7 1 ,儲存到redis 就是 01000001 這是一個ASCII 編碼
他對應的值為A,所以通過get k1 能得到A 的結果

bitcount

bitcount

統計key 中為1 的數量
使用說明 bitcount key [start end]
key 就是要統計的key
start 就是開始下標
end 就是結束下標
在這裡插入圖片描述
剛才放進去的值為 0100001 , 所以獲取到的結果為2

bitopbitop

這裡貼一下官網的說明吧

對一個或多個儲存二進位制位的字串 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

not 運算結果 使一個數(常量或變數)的每一位變反,即0變1,1變0

所以k3 的結果依然是A

bitpos

在這裡插入圖片描述
使用說明
BITPOS key bit [start] [end]
返回字串裡面第一個被設定為1或者0的bit位。
key 就是你要查詢的key
bit 1或者0
start 開始的下標
end 結束的下標
在這裡插入圖片描述
放到redis 中的值為00100000
所以取到的值為 2

暫時就寫這麼多吧,還得多多總結,才能沉澱下來知識啊