redis深さ冒険03-ビットマップ


redis深度冒険03-ビットマップbit


redisビットマップデータ構造は、ゼロではなく1であり、各ビットは1バイト、8ビットしか占めていない.ビットマップは実は普通の文字列で、byte配列です.getbit setbitなどでbyte配列をビット配列として扱うことができます

基本的な使い方


h文字のバイナリは01101000です
e文字のバイナリは01100101です
アルファベットhの場合、インデックスは0から始まります.第1 2 4を1に設定する必要がある
ゼロ・ストレージ
setbit s 1 1
setbit s 2 1
setbit s 4 1
get s              ---     h  

ゼロレジスタ
setbit w 1 1
getbit w 1

ゼロクリア
set w h
getbit w 1
getbit w 5

統計と検索

  • bitcountビットマップ統計--指定位置1の個数
  • を統計する
  • bitposビットマップ検索--統計範囲内に現れる最初の0または1
  • bitcount s    --1   
    bitpos s 0    --   0   
    bitpos s 1    --   1