您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
redis的getbit与setbit
发布时间:2021-10-27 23:10:03编辑:雪饮阅读()
前番了解了redis的getbit和setbit,这里讨论一个题外话:
redis> SETBIT bit 100861
(integer)0
redis> GETBIT bit 10086
(integer)1
redis> GETBIT bit 100 # bit 默认被初始化为 0
(integer)0
这里为什么说是bit默认初始化为0?什么意思呢?
首先要从这里的setbit分析了,这里setbit了10086的偏移量,但是实际想想看,二进制常见的就是8位的,10086这么多….,那么在10086偏移量之前还有很多空置的位呢?大家都知道二进制要么0要么1,那么这些空置的位这里默认就是0 了,所以这里说默认初始化为0,这里getbit的偏移量是100,明显小于10086,那么这里说的意思就是这里100的偏移量也是获取的0.但是某个key不存在或者偏移量超过了像是八位也是返回0.
我的理解是无论你setbit时候的偏移量是否超过8(7)了,那么有两种情况一种是不晓得默认最大有多少个二进制位,反正超过8位应该都是0了,而另外我理解的就是当setbit偏移量越界超过索引为7的位时候,则每超过2个位(跨度一个位),则对一个跨度所对应的位默认为0.
不过还是尽量以人家注释的那种理解,注释之外的是我的个人见解,我个人这里暂时无法得到验证。
关键字词:redis,getbit,setbit
上一篇:Redis的Mget 命令
下一篇:Redis的Setex 命令