Redis命令之BITCOUNT-官方例子解析

BITCOUNT -key [start end] :统计字符串指定起始位置的字节数

起始版本:2.6.0

时间复杂度:O(N)

统计字符串被设置为1的bit数.

一般情况下,给定的整个字符串都会被进行计数,通过指定额外的 start 或 end 参数,可以让计数只在特定的位上进行。

start 和 end 参数的设置和 GETRANGE命令类似,都可以使用负数值:比如 -1 表示最后一个位,而 -2 表示倒数第二个位,以此类推。

不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。

返回值

Integer reply

被设置为 1 的位的数量

 

 

REDIS命令提供的BITCOUNT例子如下:

 

redis> SET mykey "foobar"
OK
redis> BITCOUNT mykey
(integer) 26
redis> BITCOUNT mykey 0 0
(integer) 4
redis> BITCOUNT mykey 1 1
(integer) 6
redis>

 

看着不是很明白。

 

从ASCII码角度解析,foobar 对应的ASCII码如下:

 二进制bit=1个数
f011001104
o011011116
o011011116
b011000103
a011000013
r011100104
  26

 

1. BITCOUNT mykey,所有位置为1的数量为26。

2. BITCOUNT mykey 0 0,0 0 代表开始和结束的Byte位置数。0 0 取的是f,所以结果是4。

3. BITCOUNT mykey 1 1,1 1指从第一个Byte开始到下标为1结束,即o,结果为6。

4. BITCOUNT mykey 1 3, 指取下标1到3,即oob,结果为15。

 

 

 

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值