您的位置:首页 > 数据库 > Redis

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)
  • 多态:链表可以保存不同的类型和值
  • 点赞
  • 收藏
  • 分享
  • 文章举报
〆竹墨残香 烟花冷ゾ 发布了7 篇原创文章 · 获赞 5 · 访问量 288 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: