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

redis源码阅读之bitfieldop

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

一觉醒来才发现,刚刚的一篇文章,貌似忘了写这个东西,补上,顺便给自己增增速,
bitfield命令起始同之前的bitops的操作差不多,只不过它是提供了针对同一个值的不同段,一次性做多个操作,最终返回一个数组作为结果,其命令形式如下:
BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
由上面的命令可知,BITFIELD命令供支持三种自命令,并设置了溢出处理方式:
1. GET type offset,在指定的偏移量,拿出指定类型的数据
2. SET type offset value, 在指定的偏移量,设置指定类型的数据
3. INCRBY type offset increment,在指定的偏移量,为指定类型增加increment
4. OVERFLOW WRAP|SAT|FAIL, 处理溢出的方式:回环(默认),满足,失败;

理解了其命令之后,下面来看看代码:
bitfield是将每一个子命令都保存到一个对应的结构当中去,结构如下:

执行逻辑也就明了,先解析出子命令,然后在key对应的value上进行相应操作,遇到溢出要按照指示处理,主要代码如下:


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

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

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

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