美文网首页
redis-ziplist

redis-ziplist

作者: zhangsanzhu | 来源:发表于2018-12-30 22:30 被阅读0次

ziplist

使用场景

redis Hash与List

压缩列表的存储结构

struct ziplist<T> {
    int32 zlbytes; // 整个压缩列表占用字节数
    int32 zltail_offset; // 最后一个元素距离压缩列表起始位置的偏移量,用于快速定位到最后一个节点;为了支持双向遍历
    int16 zllength; // 元素个数
    T[] entries; // 元素内容列表,挨个挨个紧凑存储
    int8 zlend; // 标志压缩列表的结束,值恒为 0xFF
}...

ziplist的结构图:
zibytes - zltail_offset - zllength - entry - entry - entry - zlend;

entry 结构图

struct entry{
    int<var> prevlen; // 前一个 entry 的字节长度
    int<var> encoding; // 元素类型编码
    optional byte[] content; // 元素内容
}

ziplist总结

ziplist属于紧凑存储,没有冗余空间,也就意味中每次增加元素都会出发重新分配内存.
删除中间节点,会导致级联更新.

老钱: https://juejin.im/book/5afc2e5f6fb9a07a9b362527/section/5b5c95226fb9a04fa42fc3f6

相关文章

  • redis-ziplist

    ziplist 使用场景 redis Hash与List 压缩列表的存储结构 ziplist的结构图:zibyte...

网友评论

      本文标题:redis-ziplist

      本文链接:https://www.haomeiwen.com/subject/nkqulqtx.html