1. 程式人生 > >Redis---List(鏈表)

Redis---List(鏈表)

節點 表數 node nod ext 壓縮 class redis spa

1. 基本結構

  Redis 早期版本存儲 list 列表數據結構使用的是壓縮列表 ziplist 和普通的雙向鏈表 linkedlist,也就是元素少時用 ziplist,元素多時用 linkedlist。

// 鏈表
struct list {
    listNode *head; 
    listNode *tail;
    long length;
}

// 鏈表的節點
struct listNode<T> {
    listNode* prev;
    listNode* next;
    T value;
}
  1. head 節點的 prev 和 tail 節點的 next 都指向 NULL, 對鏈表的訪問以NULL為終點
  2. length 為鏈表存儲的節點個數,獲取節點數量的復雜度為0(1)

Redis---List(鏈表)