• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

redis源码阅读之bitops

redis 海叔叔 13小时前 4次浏览 已收录 0个评论

讲讲redis当中的bit操作,首先,先简单介绍以下redis当中的位操作的命令

命令 解释
SETBIT key offset 0|1 将key存储的值的对应的二进制位设置为0或者1
GETBIT key offset 将key存储的值的对应的二进制位的值返回
BITCOUNT key 统计key存储的值当中,二进制位当中1的个数
BITOP AND|OR|XOR|NOT destkey srckey1 srckey2 … srckeyn 将多组key中存储的值按照选项操作,操作的结果存储在destkey当中

其中key对应的值的存储方式是redis当中的sds字符串
在实际操作当中,redis会把存储的sds字符串当做二进制数组,但是实际保存位数组的顺序和书写数组的顺序是相反的
所以根据输入的offset在相应的sds当中找到对应的位的计算方式也就出来了
idx_of_byte = [offset / 8]
idx_of_bit = [offset mod 8] + 1
这里仅列出set操作的代码:


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址