redis之setbit、getbit、bitcount命令

setbit命令:
语法:setbit key offset value
对key所存储的字符串值,设置或清除指定偏移量上的位(bit).
位的设置或者清除取决于value参数,可以是0也可以是1.
当key不存在的时候,自动生成一个新的字符串.
字符串会进行伸展以确保它可以将value保存在指定的偏移量上。当字符串上的值进行伸展的时候,
空白位置以0填充
offset 参数必须大于或者等于0 小于2^32(bit映射被限制在512M内)注意从左开始为第0位
解释:
setbit m 100 1
m为key
offset(偏移量)为100 就是设置二进制0000000……00000 从左到右第一百位
value(值) 为1 就是设置二进制0000000……00001 从左到右第一百位为1
如果使用的set的话:
set m "ab"
a的二进制为:01100001
b的二进制为:01100010
所以设置m为ab在get看来是ab getbit看来是:0110000101100010
setbit m 6 1
设置第6 位为1也就是a的二进制01100001修改为01100011
get m
返回cb
同理设置第15位为1的话,返回cc

getbit命令:
语法:getbit key offset
对key所存储的字符串值,获取指定偏移量上的位(bit)
当offset比字符串值的长度大,或者key不存在时,返回0
返回值:
字符串指定偏移量上的位(bit)
接着上面的例子:
getbit m 100
返回1

bitcount命令:
语法:bitcount key [start] [end]
计算给定字符串中,被甚至为1的比特位的数量。
默认情况下,给定的整个字符串都会被进行计数,可以通过start、end指定区间中指定计数操作
start和end可以包含负值,以便从字符串末尾开始索引字节,其中-1是最后一个字节,以此类推
不存在的键被视为空字符串,返回0
返回值:
被设置为1的位的数量。
举例:
set m "ab"      0110000101100010
bitcount m      返回6
bitcount m 0 0  也就是a 返回3
bitcount m 1 1  也就是b 返回3

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值