可以先看下这篇文章,https://www.zhihu.com/question/27672245里面一定能解决你的大部分疑惑。
接着,我连上redis服务器。
redis-cli -p 6383 (端口号填写自己的)
- BITCOUNT bit:查找key值为bit的bit位为1的个数
redis 172.16.10.228:22121> BITCOUNT bit
(integer) 0
- 接着使用4条setbit命令可见,第二条setbit命令和第一条setbit命令返回的值不一样,这是因为,每一次set的时候,返回的都是这个值上的之前的bit位的值。也就是说第四次setbit操作就将第10086个位上的0设置为了1。如下图所示:
- 最后再用BITCOUNT 查看下
redis 172.16.10.228:22121> BITCOUNT bit
(integer) 3
可以看出,bit这个key总共有3位被设置成了1。 - 接着再看下:
redis 172.16.10.228:22121> GETBIT bit 2
(integer) 1
redis 172.16.10.228:22121> GETBIT bit 3
(integer) 0
可见,2号位置是1,但是3号位置我们没有设置值,所以还是为默认值0。
以上就是setbit和getbit一级bitcount的解释。
本文为原创,请勿转载,转载请标明出处。