位图指令
 ===========setbit 指令===================
 setbit  key  offset value 下标从0开始
 eg 
   setbit  w 1 1;  在第一位(高位) 设为1  如果返回为0 则则设置成功 返回为1 表示该位原来有值 覆盖成功
 getbit key  offset  同时也可以执行 get key 零存整取 所以也有整存零取的操作
 eg 
   getbit w 1 
   
  ===========bitcount 指令===================
  bitcount  key  start  end  [start ,end] 
              区间  -1 表示尾部 第一 -2表示尾部第二个 返回所在指定区间内 位为1的数量
  
  set w he 
  
  bitcount w  0 0 --->3 下标从0开始
  bitcount w 0 -1(1)--->7 
  
  =============bitpos 指令===================
      用来查找指定范围内出现的第一个 0 或 1。
    bitpos key bit(0|1) start end
         其中 bit只能为0或者1  start end指的是对应的字节  
         该指令返回的结果是说 在[start,end]区间的字符内   第一个0或者1(bit为)出现的位置的下表(该下标是全部bit的位置)
     
     eg
       he-> 01101000 01100101        
         127.0.0.1:6379> bitpos w 1 0 1  查找he 中第一次出现1的bit位的下标
         (integer) 1
         127.0.0.1:6379> bitpos w 0 0 0
         (integer) 0
         127.0.0.1:6379> bitpos w 1 1 1 查找e中第一次出现1的bit位的下标
         (integer) 9 
  
   ================bitfield 指令 ================
     对指定位置的连续bit位进行读或写处理  
   1.读指令 bitfield  get key u|i[num] offset  
           该指令是从该字节偏移offset的bit位  读取 区间为[offset,num+offset]
                  如果为u[num] 则从偏移出 连续读num个bit位 然后按照无符号数显示结果    
                  如果为i[num] 则从偏移出 连续读num个bit位 然后按照有符号数显示结果    
        eg 
          he-> 01101000 01100101   
          set w he
          bitfield w get u2 0 ==>01  无符号数 ---->1          
          bitfield w get u3 1 ==>110 无符号数 ---->3          
          bitfield w get i3 1 ==>110 有符号数  按位取反  001  末位加1   010 ---->-2    
          
          同时支持一次读取多个
          127.0.0.1:6379> bitfield w get u2 0   get u3 1    get i3 1
         1) (integer) 1
         2) (integer) 6
         3) (integer) -2
         
  2. 写指令 bitfield key set i|u[num] offset value
            该指令将bit位区间 [offset,num+num] 替换为 value对应的 bit值 这里 value 必须为整数 
             如果超过区间的长度 值截取 区间范围内的bit位
            比如 要对0000 设置 128   明显不够长度 这个时候 我们只区128的低4位 0000
             无符号貌似没什么意义 就不管了
       eg
         he-> 01101000 01100101   
         set w he 
         127.0.0.1:6379> bitfield w set u8 8 h  不是数字 非法
         (error) ERR value is not an integer or out of range
         127.0.0.1:6379> bitfield w set u4 8 128  4个bit位 放不下128 只取2低位的4个bit
         1) (integer) 6
         127.0.0.1:6379> bitfield w get u4 8   这里取值就变为0
         1) (integer) 0
         127.0.0.1:6379> get w    这里e 从 01100101 变为  0000 0101 没有对应的asii码 所以转为16进制输出
         "h\x05"
         127.0.0.1:6379> bitfield w set u8 8 97 -->a
         1) (integer) 101
         127.0.0.1:6379> get w
         "ha"         
  3.  自增指令(个人感觉用处不大) bitfield key incrby u|i[num] offset value
           对指定区间内的(有)无符号数字 增加 value 区间为 [offset,num+offset]
         eg 
          he-> 01101000 01100101   
          set w he       
         127.0.0.1:6379> bitfield w incrby u4 12 1
         1) (integer) 6
         127.0.0.1:6379> bitfield w get u4 12
         1) (integer) 6
         127.0.0.1:6379>    
          
  4. 对于incryby 指定区间溢出后的处理
     1. 默认是折返 即溢出 只保留指定区间的bit的值    
     2. overflow 指定溢出策略
          sat  饱和截断 即保留最大值 不在自增
          fail 不执行   
        eg
         he-> 01101000 01100101   
         set w he 
         
         // 饱和截断  
         127.0.0.1:6379> bitfield w overflow sat incrby u3 0 3
         1) (integer) 6
         127.0.0.1:6379>  bitfield w overflow sat incrby u3 0 1
         1) (integer) 7
         127.0.0.1:6379>  bitfield w overflow sat incrby u3 0 1  --这里不改变
         1) (integer) 7        
          
         //默认折返 
         127.0.0.1:6379>  bitfield w incrby u3 0 1
         1) (integer) 6
         127.0.0.1:6379>  bitfield w incrby u3 0 1
         1) (integer) 7
         127.0.0.1:6379>  bitfield w incrby u3 0 1
         1) (integer) 0
         127.0.0.1:6379>  bitfield w incrby u3 0 1
         1) (integer) 1  
         
         //不执行
         127.0.0.1:6379>  bitfield w overflow fail incrby u3 0 1
         1) (integer) 5
         127.0.0.1:6379>  bitfield w overflow fail incrby u3 0 1
         1) (integer) 6
         127.0.0.1:6379>  bitfield w overflow fail incrby u3 0 1
         1) (integer) 7
         127.0.0.1:6379>  bitfield w overflow fail incrby u3 0 1   --这里已经超过做大值 所以这里不执行
         1) (nil)  
         127.0.0.1:6379> bitfield w get u3 0  --- 此时仍然是最大值
         1) (integer) 7
         127.0.0.1:6379>