位圖介紹以及基本用法

位圖

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表示第一個位元組

    image-20220816213411649

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

    image-20220816214519034

  • bitcount

    統計指定區間上值為1的個數

    語法:BITCOUNT key [start] [end] start end 位元組的索引 正方向

    從左向右從0開始,注意官方start、end是位,測試後是位元組

    BITCOUNT key [start] [end] start end 位元組的索引 負方向

    從右向左從-1開始,注意官方start、end是位,測試後是位元組

image-20220816215511197

Tags: