Redis底层数据结构 ------> quicklist

Redis3.2版本开始使用quicklist替代linkedlist和ziplist,作为列表对象的底层数据结构。quicklist是ziplist和双向链表的结合,通过双向指针连接多个ziplist,降低了空间开销并减少内存碎片。插入、查找和删除操作在quicklist中高效执行,优化了列表操作的性能。
摘要由CSDN通过智能技术生成

之前的文章我曾总结到了Redis数据结构一链表和Redis数据结构一压缩列表这两种数据结构,他们是Redis List(列表)对象的底层实现方式

但是考虑到艇表的附加空间相对太高,prev和next 指针就要占去 16个字节(64bit 系统的指针是8个字节),另外每个节点的内存都是单独分配,会加剧内存的碎片化,影响内存管理效率。

因此Redis3.2版本开始对列表数据结构进行了改造,使用quicklist代替了 ziplist和 linkedlist.

 

如图:

一、基本结构


quicklist 实际上是ziplistlinkedList的混合体,它将linkedList 按段切分,每一段使用ziplist 来紧凑存储,多个zipList之间使用双向指针串接起来。
 

Redis3.2之前: 列表对象的底层数据结构(linkedlist 与 ziplist&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值