1
newlifeinsc 2019-03-16 20:28:03 +08:00 via Android
bit 操作的实际上也是普通的字符串,你直接通过 set key xxx 命令就可以了
|
2
Youngda OP @newlifeinsc 知道这个,貌似没有全 1 的 ASCII,想找一步到位的那种…
|
3
newlifeinsc 2019-03-16 21:56:32 +08:00 1
@Youngda 没有 ascii,直接操作二进制啊, redis-cli 上没试过可不可以。你用的什么语言,像 nodejs 的话, ioredis 直接 set Buffer 类型, 在程序里设置 这个 Buffer 的二进制全是 1 就可以了, 其他语言应该也有类似的。0 的话,直接把这个 key 删掉就可以了
|
4
leoleoasd 2019-03-16 22:30:03 +08:00 1
1<<n
|
5
Youngda OP @newlifeinsc 谢谢,我试试
|
6
newlifeinsc 2019-03-16 23:13:20 +08:00
@Youngda 另外,我记得这里还有一个坑,redis 里单个字节内的位的顺序和平时使用的是反的,如设置的二进制 0x0f,按常理说是 0-3 是 1,而 redis 是 7-4, 即 0 对应 7, 1-6 这种顺序
|
7
Youngda OP @leoleoasd 谢谢指点
@newlifeinsc 我试了一下,set test a //getbit test 0-7,顺序是 0110 0001 今天又仔细阅读了一下文档,测试了一下,用这条指令可以实现,bitfield test set i8 0 -1//从第 0 个位开始,将接下来的 8 个位用无符号数 -1 替换,再 getbit 就是 1111 1111 |