Redis中的位运算

马谦马谦马谦 2017年11月24日21:44:19 发表评论
文章最后编辑于:2017-11-24 22:04:39

一、概述

任何一门程序语言都离不开位运算这个功能,redis虽然不是一门编程语言,但也是一个和编程密切关联的工具,并且所有的数据信息肯定都是以二进制的形式存放的,所以自然少不了位运算的功能。

二、使用方法

redis中位运算相关的方法:

  • GETBIT key offset:获取第offset位的bit,不存的的比特位返回0。
  • SETBIT key offset value:给第offset位设置成value。
  • BITCOUNT key [start] [end]:计算key中1的个数。
  • BITOP operation destkey key [key]:执行位操作,位操作包含与(AND)或(OR)异或(XOR)以及 非(NOT)
  • BITPOS key value [start] [end]:查询key中第一次出现value的位置,startend表示字符的开始和结束位置。

三、示例

以字符串maqian为示例,对应的ASCII码和二进制位如下所示:

Redis中的位运算

1. 获取比特位

获取第一个字符m的第0~7 比特01101101

2. 获取1的个数

maqian字符串中1的个数为5+3+4+4+3+5=24个:

3. 设置比特位

把第m的第六位变成1,即相当于把m的ascii码+2,此时字符表示的是o

4. 与或非操作

5. 查询第一个1的位置

 

 

 

 

本文共执行46次查询,耗时0.270秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: