bitMap

作者: aoshi | 来源:发表于2020-12-01 10:28 被阅读0次
    setbit key offset value    设置
    getbit key offset            取值
    bitcount key [start] [end]  计数
    bitpos  key bit  [start] [end] 查找
    

    bitcount命令:

    语法:bitcount key [start] [end]
    计算给定字符串中,被甚至为1的比特位的数量。
    默认情况下,给定的整个字符串都会被进行计数,可以通过start、end指定区间中指定计数操作start和end可以包含负值,以便从字符串末尾开始索引字节,其中-1是最后一个字节,以此类推不存在的键被视为空字符串,返回0
    返回值:
    被设置为1的位的数量。

    举例:
    set m "ab"      0110000101100010
    bitcount m      返回6
    bitcount m 0 0  也就是a 返回3
    bitcount m 1 1  也就是b 返回3
    

    bitpos命令:

    语法:BITPOS key bit [start] [end]
    返回字符串里面第一个被设置为1或者0的bit位。
    默认情况下整个字符串都会被检索一次,只有在指定start和end参数(指定start和end位是可行的),该范围被解释为一个字节的范围,而不是一系列的位。所以start=0 并且 end=2是指前三个字节范围内查找。
    注意,返回的位的位置始终是从0开始的,即使使用了start来指定了一个开始字节也是这样
    如果我们在空字符串或者0字节的字符串里面查找bit为1的内容,那么结果将返回-1。
    如果我们在字符串里面查找bit为0而且字符串只包含1的值时,将返回字符串最右边的第一个空位。如果有一个字符串是三个字节的值为0xff的字符串,那么命令BITPOS key 0将会返回24,因为0-23位都是1。
    基本上,我们可以把字符串看成右边有无数个0。
    然而,如果你用指定start和end范围进行查找指定值时,如果该范围内没有对应值,结果将返回-1。

    注意

    • [start] [end] 指的都是字节数
    • 不存在的key将会被当做空字符串来处理

    相关文章

      网友评论

          本文标题:bitMap

          本文链接:https://www.haomeiwen.com/subject/tedjiktx.html