Redis链表
2020-02-05 11:15
211 查看
链表
链表
Redis中的链表在不同情况下底层实现的数据结构是不同的,当列表的元素比较多或者列表中的元素都是比较长的字符串时,Redis就会用链表作为列表的底层实现。
链表 & 链表节点
- 链表节点
数据结构:
// 链表节点 class listNode{ //前置节点 listNode pre; //后置节点 listNode next; //节点值 Object value; }
图示:
- 链表
数据结构
// 链表节点 class list{ //头节点 listNode head; //尾节点 listNode tail; //节点数量 long len; //节点值复制函数 void dup(listNode ptr); //节点值释放函数 void free(listNode ptr); //节点值对比函数 ........ }
图示:
总结
Redis中链表的特性
- 双端链表: 链表节点带有pre和next指针
- 无环链表: 头节点的pre指针和尾节点的next指针都为NULL
- 带有表头表尾指针:获取表头表尾节点的复杂度为O(1)
- 带链表长度计数器:获取链表中节点数量的复杂度为O(1)
- 多态:链表可以保存不同的类型和值
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- redis 源代码之数据结构(1)--链表的实现
- Redis-链表
- Redis源码学习之【链表】
- Redis源码学习3-基本数据结构之双向链表
- Redis之简单动态字符串&链表
- redis列表键的底层实现之链表
- Redis设计与实现系列-基本数据结构-链表和压缩列表
- Redis链表(linked-list)数据类型和常用命令
- Redis 数据结构之链表
- 小白的REDIS学习(二)-链表
- Redis-05Redis数据结构--链表( linked-list)
- 【redis源码分析】双向链表---adlist
- redis 链表操作
- Redis源码分析——链表
- 深入redis内部--实现双向链表
- Redis源码(二)——链表
- redis源码分析-adlist(链表)
- 深入理解跳跃链表在Redis中的应用
- Redis设计与实现系列-基本数据结构-链表和压缩列表
- redis源码解读之双向链表————adlist.h文件