目录搜索
Clustercluster addslots(集群 槽位)cluster count failure reports(集群计数失败报告)cluster countkeysinslotcluster delslotscluster failovercluster forgetcluster getkeysinslotcluster infocluster keyslot(集群键槽)cluster meetcluster nodes(集群节点)cluster replicate(集群复制)cluster reset(集群重置)cluster saveconfigcluster set config epochcluster setslotcluster slavescluster slotsreadonlyreadwriteConnectionauthechopingquitselectswapdbGeogeoaddgeodistgeohashgeoposgeoradiusgeoradiusbymemberHasheshdelhexistshgethgetallhincrbyhincrbyfloathkeyshlenhmgethmsethscanhsethsetnxhstrlenhvalsHyperLogLogpfaddpfcountpfmergeKeysdeldumpexistsexpireexpireatkeysmigratemoveobjectpersistpexpirepexpireatpttlrandomkeyrenamerenamenxrestorescansorttouchttltypeunlinkwaitListsblpopbrpopbrpoplpushlindexlinsertllenlpoplpushlpushxlrangelremlsetltrimrpoprpoplpushrpushrpushxPub/SubpsubscribepublishpubsubpunsubscribesubscribeunsubscribeScriptingevalevalshascript debugscript existsscript flushscript killscript loadServerbgrewriteaofbgsaveclient getnameclient killclient listclient pauseclient replyclient setnamecommandcommand countcommand getkeyscommand infoconfig getconfig resetstatconfig rewriteconfig setdbsizedebug objectdebug segfaultflushallflushdbinfolastsavemonitorrolesaveshutdownslaveofslowlogtimeSetssaddscardsdiffsdiffstoresintersinterstoresismembersmemberssmovespopsrandmembersremsscansunionsunionstoreSorted SetszaddzcardzcountzincrbyzinterstorezlexcountzrangezrangebylexzrangebyscorezrankzremzremrangebylexzremrangebyrankzremrangebyscorezrevrangezrevrangebylexzrevrangebyscorezrevrankzscanzscorezunionstoreStringsappendbitcountbitfieldbitopbitposdecrdecrbygetgetbitgetrangegetsetincrincrbyincrbyfloatmgetmsetmsetnxpsetexsetsetbitsetexsetnxsetrangestrlenTransactionsdiscardexecmultiunwatchwatch
文字

BITPOS key bit [start] [end]

自2.8.7起可用。

时间复杂度: O(N)

将字符串中第一位的位置设置为1或0。

返回该位置,将字符串视为从左到右的位数组,其中第一个字节的最高有效位位于位置0,第二个字节的最高有效位位于位置8,等等。

GETBIT 和 SETBIT后面跟着相同的位位置约定。

默认情况下,检查字符串中包含的所有字节。可以仅在指定的时间间隔内查找位,并传递额外的参数 start end(可能只是传递start,操作会假定 end 是字符串的最后一个字节,但是存在语义差异后来)。的范围内被解释为范围的字节,而不是一比特的,所以start=0end=2装置看的前三个字节。

请注意,即使在使用开始结束来指定范围时,位位置也始终以从零位开始的绝对值的形式返回。

与 GETRANGE 命令类似,开始和结束可以包含负值,以便从字符串的末尾开始索引字节,其中-1是最后一个字节,-2是倒数第二个字符,等等。

不存在的键被视为空字符串。

返回值

整数回复

该命令根据请求返回第一位设置为1或0的位置。

如果我们查找设置位(位参数为1)并且字符串为空或仅由零字节组成,则返回-1。

如果我们查找清零位(位参数为0)并且该字符串仅包含位设为1,则函数返回第一位,而不是右侧字符串的一部分。因此,如果字符串是三个字节设置为该值,0xff该命令BITPOS key 0将返回24,因为直到位23,所有的位都是1。

基本上,函数认为字符串的权利,与你寻找明确位,没有指定范围或补零开始的说法

但是,如果您正在查找清除位并指定具有开始结束的范围,则此行为会发生变化。如果在指定范围内未找到清除位,则该函数返回-1,因为用户指定了一个清除范围,并且该范围内没有0位。

例子

redis>  SET mykey "\xff\xf0\x00" "OK" redis>  BITPOS mykey 0 (integer) 12 redis>  SET mykey "\x00\xff\xf0" "OK" redis>  BITPOS mykey 1 0 (integer) 8 redis>  BITPOS mykey 1 2 (integer) 16 redis>  set mykey "\x00\x00\x00" "OK" redis>  BITPOS mykey 1 (integer) -1

上一篇:下一篇: