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個數
f 01100110 4
o 01101111 6
o 01101111 6
b 01100010 3
a 01100001 3
r 01110010 4
    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。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章