二进制位数组
Redis提供了SETBIT、GETBIT、BITCOUNT、BITOP四个命令用于处理二进制位数组。
SETBIT命令用于为位数组指定偏移量上的二进制位设置值,GETBIT命令则用于获取位数组指定偏移量上的二进制位的值,BITCOUNT命令用于统计位数组里面值为1的二进制位的数量,BITOP命令既可以对多个位数组进行按位与(and)、按位或(or)、按位异或(xor)运算,也可以对给定的位数组进行取反(not)运算。
位数组的表示
Redis使用字符串对象来表示位数组,因为字符串对象使用的SDS数据结构是二进制安全的,所以程序可以直接使用SDS结构来保存位数组,并使用SDS结构的操作函数来处理位数组。
buf[0]保存了一个字节长的位数组。
BITCOUNT命令使用了查表算法和variable-precision SWAR算法来优化命令的执行效率
标签:BITCOUNT,二进制位,Redis,命令,按位,数组 From: https://www.cnblogs.com/gcr277/p/17048797.html