《Redis操作Python系列、setbit位修改|CSDN创作打卡》

导读

setbit 对 key 对应值的二进制表示的位进行操作,这个功能用的是真不多,但是效率绝对是最快的,但是个人建议,就是1和0之间的改变,不然挺麻烦的。

语法

setbit(name, offset, value)

参数:

  • name - redis的name
  • offset - 位的索引(将值变换成二进制后再进行索引)
  • value - 值只能是 1 或 0

注:如果在Redis中有一个对应: n1 = "1",

那么字符串1也就是字符1的二进制表示为:00110001(49)

《Redis操作Python系列、setbit位修改|CSDN创作打卡》 

所以,如果执行 setbit('n1', 7, 0),也就是最后一位的1改为0,

那么最终二进制则变成 00110000,即:"48"

《Redis操作Python系列、setbit位修改|CSDN创作打卡》

扩展,转换二进制表示:

【话说咱们已经到demo8.py了】

《Redis操作Python系列、setbit位修改|CSDN创作打卡》

输入以下编码:

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('n1',1)#1是49=00110001
r.setbit('n1',7,0)#下标第7个改成0就是=00110000

print(r.get('n1'))

《Redis操作Python系列、setbit位修改|CSDN创作打卡》 

在测试一个:

import redis

r = redis.Redis(host='localhost', port=6379, decode_responses=True)
r.set('n1',2)#2是50=00110010
r.setbit('n1',7,1)#下标第7个改成0就是=00110011

print(r.get('n1'))

完全符合。

《Redis操作Python系列、setbit位修改|CSDN创作打卡》

希望能对大家有一定的帮助。欢迎一键三连,谢谢。

上一篇:javascript 中 !~ 什么意思


下一篇:python – 为什么range() – 函数比乘法项更慢以获取嵌套列表中的副本?