redisbook笔记——redis内部数据结构

  在Redis的内部,数据结构类型值由高效的数据结构和算法进行支持,并且在Redis自身的构建当中,也大量用到了这些数据结构。 这一部分将对Redis内存所使用的数据结构和算法进行介绍。

  在Redis的内部,数据结构类型值由高效的数据结构和算法进行支持,并且在Redis自身的构建当中,也大量用到了这些数据结构。

  •sds会为追加操作进行优化:加快追加操作的速度,并降低内存分配的次数,代价是多占用了一些内存,而且这些内存不会被主动释放。

  大部分C 程序都会自己实现一种链表类型,redisbookRedis也不例外。双端链表还是Redis列表类型的底层实现之一

  因为双端链表占用的内存比压缩列表要多,所以当创建新的列表键时,列表会优先考虑

  使用压缩列表作为底层实现,并且在有需要的时候,才从压缩列表实现转换到双端链表实现。

</><>  ><>  –节点带有前驱和后继指针,访问前驱节点和后继节点的复杂度为><>  –链表带有指向表头和表尾的指针,因此对表头和表尾进行处理的复杂度为><>  –链表带有记录节点数量的属性,所以可以在><>  字典(><>  因为压缩列表比字典更节省内存,所以程序在创建新><>  每个><>< /></><>  •><>  它的效率可以和平衡树媲美——查找、删除、添加等操作都可以在对数期望时间下完成,</><>  •层:保存着指向其他元素的指针。高层的指针越过的元素数量大于等于低层的指针,为了提高查找的效率,程序总是从高层先开始访问,然后随着元素值范围的缩小,慢慢降低层次。</><>  ><>< /></><>  跳跃表将指向有序集的><>  为了适应自身的需求,><>  >