BITPOS key bit [start] [end]
返回字符串里面第一個被設置為1或者0的bit位。
返回一個位置,把字符串當做一個從左到右的字節數組,第一個符合條件的在位置0,其次在位置8,等等。
GETBIT?和?SETBIT?相似的也是操作字節位的命令。
默認情況下整個字符串都會被檢索一次,只有在指定start和end參數(指定start和end位是可行的),該范圍被解釋為一個字節的范圍,而不是一系列的位。所以start=0?并且?end=2是指前三個字節范圍內查找。
注意,返回的位的位置始終是從0開始的,即使使用了start來指定了一個開始字節也是這樣。
和GETRANGE命令一樣,start和end也可以包含負值,負值將從字符串的末尾開始計算,-1是字符串的最后一個字節,-2是倒數第二個,等等。
不存在的key將會被當做空字符串來處理。
返回值
Integer reply
命令返回字符串里面第一個被設置為1或者0的bit位。
如果我們在空字符串或者0字節的字符串里面查找bit為1的內容,那么結果將返回-1。
如果我們在字符串里面查找bit為0而且字符串只包含1的值時,將返回字符串最右邊的第一個空位。如果有一個字符串是三個字節的值為0xff的字符串,那么命令BITPOS key 0將會返回24,因為0-23位都是1。
基本上,我們可以把字符串看成右邊有無數個0。
然而,如果你用指定start和end范圍進行查找指定值時,如果該范圍內沒有對應值,結果將返回-1。
##例子
redis> SET mykey "\xff\xf0\x00" OK redis> BITPOS mykey 0 # 查找字符串里面bit值為0的位置 (integer) 12 redis> SET mykey "\x00\xff\xf0" OK redis> BITPOS mykey 1 0 # 查找字符串里面bit值為1從第0個字節開始的位置 (integer) 8 redis> BITPOS mykey 1 2 # 查找字符串里面bit值為1從第2個字節(12)開始的位置 (integer) 16 redis> set mykey "\x00\x00\x00" OK redis> BITPOS mykey 1 # 查找字符串里面bit值為1的位置 (integer) -1 redis>本文作者:陳群 本文來自云棲社區合作伙伴rediscn,了解相關信息可以關注redis.cn網站。
總結
以上是生活随笔為你收集整理的BITPOS key bit [start] [end]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue2.0-axios is defi
- 下一篇: 项目管理 - 学习总目录