美文网首页
[redis 源码走读] 链表

[redis 源码走读] 链表

作者: wenfh2020 | 来源:发表于2020-01-21 14:52 被阅读0次

    redis 的链表实现不是很复杂,从 listNode 可以知道,list 是一个双向链表,支持从链表首尾两边开始遍历结点。同时提供了 listIter 迭代器,方便前后方向迭代遍历。其它应该就是链表增删改查的一些常规操作了。


    文件

    adlist.h, adlist.c

    数据结构

    链表结点

    typedef struct listNode {
        struct listNode *prev;
        struct listNode *next;
        void *value;
    } listNode;
    

    链表迭代器

    
    typedef struct listIter {
        listNode *next;
        int direction;
    } listIter;
    

    链表

    typedef struct list {
        listNode *head;
        listNode *tail;
        void *(*dup)(void *ptr);
        void (*free)(void *ptr);
        int (*match)(void *ptr, void *key);
        unsigned long len;
    } list;
    

    更精彩内容,请关注我的博客:https://wenfh2020.com

    相关文章

      网友评论

          本文标题:[redis 源码走读] 链表

          本文链接:https://www.haomeiwen.com/subject/aqsezctx.html