Redis数据结构---链表

二 链表

链表提供了高效的节点重排能力,以及顺序访问节点的访问方式,并且可以通过增减节点来灵活调整链表长度,在Redis中使用非常广泛,比如列表键,发布与订阅,慢查询,缓冲区等。

Redis中链表节点使用listNode来表示,其结构如下:

`struct listNode{
//前置节点
struct listNode *prev

//后置节点
struct listNode *next

//节点数据
void *value
}`

多个listNode通过prev和next指针相连,组成双端链表,结构为:

`struct list{
//表头节点
listNode *head;

//表尾结点
listNode *tail;

//链表长度
long len;

//节点值复制函数,用于复制链表节点保存的值
void *(*dup)(void *ptr);

//节点值删除函数,用于释放链表节点保存的值
void *(*free)(void *ptr);

//节点值对比函数,用于比较链表节点的值与输入值是否相等
void *(*match)(void *ptr);
}`

链表的前置节点与后置节点都指向NULL,所以Redis链表是一个无环链表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值