Redis Bitmap


Redis提供對字符串的按位操作,位圖把字符串抽象成一個bool類型的數組,可以進行按位操作

比如說我有一個字符串“a” 那他的位圖如下

(位) 7 6 5 4 3 2 1 0
(值) ‭0 1 0 0 0 0 0 1

Redis中對位提供的操作有以下幾種

  • setbit key offset value
  • getbit key offset
    • 127.0.0.1:6379> set k1 2
      OK
      127.0.0.1:6379> getbit k1 1
      (integer) 0
      127.0.0.1:6379> setbit k1 1 1
      (integer) 0
      127.0.0.1:6379> get k1
      "r"
    bitcount  key  [start] [end]
    • 127.0.0.1:6379> bitcount k1 0 7
      (integer) 4
    bittop 命令對於所給定的k1 k2 按位操作存入 destkey中
    • bittop and destkey k1 k2 .... 求交集
    • bittop or destkey k1 k2 ...   並集
    • bittop xor destkey k1 k2 ..  亦或
    • bit not destkey k1  取非
  • bitpos key targetbit start end 尋找在start和end范圍中第一個 位與 targetbit 相等的位置。
127.0.0.1:6379> bitpos k1 1            //不寫范圍 默認全部范圍
(integer) 1

  

 

可以用於上限超大的連續性的數字編號統計,在不犧牲查詢速度的前提下,縮小存儲空間。

如用戶id的統計,統計當天內訪問網站的用。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM