大數據量統計神器bitmap詳解


  bitmap就是使用bit位來標識數據,一個bit具有兩個值:0和1,正好可以標識true和false,8個bit組成一個byte,當統計大數據量數字集時具有運算快速,節省空間的優勢

  應用場景:

  標識統計用戶簽到:

    一般情況下,用戶id都是自增的數字主鍵,當數百萬數千萬用戶量時,可以結合redis來快速標識統計,redis指令:SETBIT key offset value

    key:可以編輯包含當前日期的內容作為key

    offset:所謂的偏移量,可以設置為id值,即每個bit位對應着一個用戶的狀態

    value:只能設置0,1,以0和1來標示true和false

    redis查詢指令:getbit key offset

  延伸:redis是使用二進制數據進行存儲的,當set testbit a時,發出get testbit,輸出"a"

    在ascii碼表中,a對應的十進制數值是97,二進制數值為01100001

              當我們依次按照位數獲取,getbit testbit 0-7,依次輸出0,1,1,0,0,0,0,1

    當我們執行指令,setbit testbit 6 1,  setbit testbit 7 0,

    輸入get testbit,輸出為"b",b對應的十進制數值是98,二進制數值為01100010

    getbit testbit 0-7,依次輸出0,1,1,0,0,0,1,0

    由此可知setbit,getbit本質是在操作key對應value的二進制數據,這也是為何節省空間的原因,因為本質上是我們操作的是一個二進制數字

  bitmap其他應用場景:快速排序,快速查詢,去重,統計


免責聲明!

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



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