1.quckList
由于压缩链表存在级联更新的问题,所以redis在3.2的时候优化了这个问题。
结构图

由图可以看出,quickList的结构其实是把压缩链表和双向链表合并起来了。通过减小quickListNode的大小来降低级联更新的问题,本质上还是没有级联更新的问题,因为数据结构使用的还是压缩链表
2.listPack
redis在5.0版本的时候彻底优化了压缩链表。取而代之的是listPack。
结构图

最大的区别是len的长度不在记录前一个节点的大小,而是只记录当前entry的wncoding+data的长度。
Redis在3.2版本中引入quickList结构,将压缩链表和双向链表结合,减少级联更新问题。而在5.0版本,Redis进一步优化,用listPack替代压缩链表,listPack的len字段只记录当前entry长度,提高效率。这两个改进都是为了提升数据存储和访问性能。
4789

被折叠的 条评论
为什么被折叠?



