redis 字符串类型 位操作

最近学习redis的时候,见到了位操作这个神奇的命令,这个命令的高位低位等问题,在《redis入门指南》中,描述得含糊不清,所以我想来实验一下

首先我们知道,redis字符串类型中,如果执行了set a 0这个命令,那么redis会把这个"0"当做字符串看待,也就是说,实际上a的值是48.
当然这个值可以进行incr操作,那么我们有理由推测,redis里面其实并不会存储真正的整数.

言归正传,0的二进制值为:00110000,它并不是一个回文串,所以,我们想要知道getbit a 0取得是最低位还是最高位的话,把0~7位数字都输出一下就知道了

这个结果那就说明了,offset为0时,表示最高位.

那么如果在这种情况下,我执行setbit a 8 1会发生什么呢?

显然,redis会选择在当前字符串后面附加一个字节的数据,然后在上面进行操作

posted @ 2020-09-04 12:00  断腿三郎  阅读(217)  评论(0编辑  收藏  举报