四、Redis字符串类型基本操作记录(2)

作者: 温新

分类: 【Redis】

阅读: 1963

时间: 2020-08-30 10:52:32

strlen 获取指定key中值的长度

语法:strlen key

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen keya</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">12</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不存在,返回0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen ziruchu</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不是字符串时报错</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> lpush db mysql redis</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> strlen db</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) WRONGTYPE Operation against a key holding the wrong kind of value</span>

1)只能获取key类型为字符串的值的长度,否则报错

2)当key不存在时,返回0

incr 将key中存储的数字值增1

语法:incr key

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key中的值不是数字类型</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incr name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) ERR value is not an integer or out of range</span>

1)key不存在,则进行设置,并值为1

2)若key的值不是数字类型,则报错

decr 将key中存在的数字值减1

语法:decr key

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decr num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 当key不存在</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decr num1</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-1</span></span>

1)当key存在,一直decr会减为负数

2)当key不存在,初始值为-1

incrby 将指定key的值加上给定的增量值

语法:incrby key 数字值

<br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrby num <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">9</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrby num <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">19</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 不存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrby num3 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不是数字型,则报错</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrby keya <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) ERR value is not an integer or out of range</span>

1)若key不存在,则初始化为指定的值

2)当key不是数字型值,则报错

decrby 将指定key的值减去给定的增量值

语法:decrby key 数字值

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decrby num3 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">2</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">8</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key不存在</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decrby num4 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key中值不是数值型</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> decrby name <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) ERR value is not an integer or out of range</span>

1)key不存在,则初始化为指定的值的负数值

2)key不是数字型,则报错

setnx key不存在时设置key的值

语法:setnx key value

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setnx age <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">18</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># key存在,设置不成功,返回0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setnx name <span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">'xiao bai'</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wang wu"</span></span>

只能用于设置不存在的key

setex 为指定的key设置过期时间

语法:setex key 时间(秒) value

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setex db <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">60</span> db </span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 查看过期时间</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> ttl db</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">56</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 不存在的key,相当于set,并设置过期时间</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setex db <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span> mysql</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 替换旧值并设置过期时间</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setex age <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">60</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">19</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> age</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"19"</span></span>

1)key存在,则旧值替换新值

2)key不存在,则设置值并设置过期时间

psettex 以毫秒为单位设置key的有效时间

语法:psetex key 毫秒值 value

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> psetex gender <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10000</span> nan</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span>

incrbyfloat 将key所存储的值加上给定的浮点增量值

语法:incrbyfloat key 增量值

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> num</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"1"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrbyfloat num <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">5</span>.5</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"6.5"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrbyfloat num <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">5</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"11.5"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 不存在的key</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrbyfloat num10 <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">10</span>.1</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"10.1"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 不是数字值 则报错</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> name</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"wang hello"</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> incrbyfloat name <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">5</span>.5</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(error) ERR value is not a valid float</span>

位操作

一个字节由8个二进制位组成。Reids有4个位操作命令setbit、getbit、bitcount、bitop。

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 设置一个键值对</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">set</span> foo bar</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span>

bar这3个字母分别对应的ASCII为98、97、114,转成二进制分别为01100010、01100001、01110010

getbit 获取key中值指定偏移量的位(bit),偏移量索引从0开始

语法:getbit key 偏移量

getbit命令获取一个字符串类型键指定位置的二进制位的值(0或1),索引从0开始

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 获取bar的第0位,也是b的ASSIC二进制的第一个数字</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getbit foo <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> getbit foo <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> </span>

获取二进制位的索引超过键值的二进制位的实际长度则默认位值为0

setbit 对key中值设置或清楚指定偏移量上的位

语法:setbit key 偏移量 value

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(98, 151, 85) !important"># 设置bar中b对应的二进制位,从0开始数,也是第7个数,从1改0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> setbit foot <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">6</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span>

若设置的位置超过了二进制位的长度,setbit命令自动将中间的二进制位设置为0。

设置一个不存在的键指定的二进制位值会自动将前面的位赋值为0。

bitcount 获取字符串类key中值是1的二进制为个数

语法:bitcount key [start end]

1)获取所有二进制为1的总数

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> bitcount foo</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">11</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> bitcount foo <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">-1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">11</span></span>

2)获取前2个字节指定范围内二进制为1的总数

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> bitcount foo <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">0</span> <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">1</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">7</span></span>

bittop 对个字符串key进行位运算,并将结果存储在指定key中

语法:bittop 位运算符 结果存储键 key [key1 key2 ...]

参数解释:

位运算符有:AND、OR、XOR、NOT

<span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">set</span> foo1 bar</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(198, 120, 221) !important">set</span> foo2 aar</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">OK</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> bitop OR result foo1 foo2</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">3</span></span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(209, 154, 102) !important">127</span>.0.0.1:6379> <span style="box-sizing: border-box;color: rgb(232, 191, 106) !important">get</span> result</span><br></br><span style="box-sizing: border-box;color: rgb(171, 178, 191);padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(152, 195, 121) !important">"car"</span></span>

我是小白,期待和优秀的你一起同行!

小白

2020年08月30日

请登录后再评论