Redis資料型別String之bitmap

2021-10-12 17:43:53 字數 2311 閱讀 5021

先用一下**檢視redis 的string型別都支援哪些方法

或者從redis 中文文件檢視

點我直接過去

相關的命令,就出現了

和bitmap 相關的有一下幾個

使用說明: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 的結果

統計key 中為1 的數量

使用說明 bitcount key [start end]

key 就是要統計的key

start 就是開始下標

end 就是結束下標

剛才放進去的值為 0100001 , 所以獲取到的結果為2

這裡貼一下官網的說明吧

對乙個或多個儲存二進位制位的字串 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 key bit [start] [end]

返回字串裡面第乙個被設定為1或者0的bit位。

key 就是你要查詢的key

bit 1或者0

start 開始的下標

end 結束的下標

放到redis 中的值為00100000

所以取到的值為 2

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

redis資料型別(String)

常用string操作命令 set keyvalue 設定值 getkey 獲取值 value 追加值 incr key 原子操作,自動加1 value必須為inter型別的字元。decr key 原子操作,自動減1 value必須為inter型別的字元。incrby key num 自動增加指定值 ...

Redis資料型別 String

redis 的字串是動態字串,是可以修改的字串,採用預分配冗餘空間的方式來減少記憶體的頻繁分配。內部為當前字串實際分配的空間 capacity 一般要高於實際字串長度 len。增 set key value 查 get key 刪 del key 增 mset key1 value1 key2 va...

Redis資料型別 String

redis學習準備篇 string 127.0 0.1 6379 set key1 v1 設定值 ok127.0 0.1 6379 get key1 取值 v1 127.0 0.1 6379 keys error err unknown command keys 127.0 0.1 6379 key...