- 1
- 0
- 约2.67千字
- 约 5页
- 2026-04-20 发布于北京
- 举报
源码4:⻛驰电掣——探索「快
速列表」内部
Redis早期版本存储list列表数据结构使⽤的是压缩列表ziplist和
普通的双向链表linkedlist,也就是元素少时⽤ziplist,元素时⽤
linkedlist。
//链表的节点
structlistNodeT{
listNode*prev;
listNode*next;
Tvalue;
}
//链表
structlist{
listNode*head;
listNode*tail;
longlength;
}
考虑到链表的附加空间相对太⾼,prev和next指针就要占去16
个字节(64bit系统的指针是8个字节),另外每个节点的内存都是
单独分配,会加剧内存的碎⽚化,影响内存管理效率。后续版本对列
表数据结构进⾏了改造,使⽤quicklist代替了ziplist和
linkedlist。
rpushcodeholegojavapython
(integer)
debugobjectcodehole
Valueat:0x7fec2dc2bde0refcount:1
encoding:quicklistserializedl
原创力文档

文档评论(0)