最近学习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会选择在当前字符串后面附加一个字节的数据,然后在上面进行操作