redis源码分解二(上层容器合集)

本篇为合集性质,redis全部的上层容器分析看如下文章
redis源码学习-t_string篇
redis源码学习-t_list篇
redis源码学习-t_hash篇
redis源码学习-t_set篇
redis源码学习-t_zset篇
redis源码学习-stream篇
如上,不同的上层容器中负责具体实现redis中的具体一个个command命令例如set,get,del等,上层容器通过对低层数据结构进行包装组合,根据不同的key属性或集合数据量灵活使用不同的组合方式(也叫编码方式)
其中完整的对应关系如图所示

可以看到,对于上层容器比较特殊的是hyperloglog,hyperloglog来源于论文

,复杂点在于理解而非对底层数据结构的操纵。
对于底层数据结构来说,特殊的为ziplist,由于有着较大的缺陷(连锁更新),在5中引入了listpack作为上位替代,在6中彻底退出上层容器调用链。