guava框架的问题
笔者曾经也想过,既然guava只是个框架,那为什么不包装成一个项目,把API封装在接口中对外提供服务呢?
可是实际上,这种操作所带来的问题极多,解决起来,成本高的可怕,后面会做对比讲解。
redis的bitmap实现
bitmap是什么?
【位图不是实际的数据类型,而是在String类型上定义的一组面向位的操作】
这句话很笼统,下面笔者详细解释一下这句话。
bitmap的核心API
SETBIT key offset value
GETBIT key offset
BITCOUNT key [start] [end]
BITOP operation destkey key [key ...]
BITOPS key targetBit [start] [end] (2.8.7版本)
你会发现,这些API都在String这一栏,说明什么?说明所谓都位图其实就是String对象。
String对象的底层数据结构
很多人都说redis的5个数据类型,面试中也常这么问,但笔者还是觉得叫对象比较好
至于为什么?马上会讲
我们可以看到,String对象底层对应了3种编码,2种数据结构