redis原始碼之鍊錶list

2021-08-20 02:08:33 字數 478 閱讀 3329

未完待續…

1.簡介:

離散,無序的資料結構。鍊錶提供了高效的節點重排能力,以及順序性的節點訪問方式,並且可以通過增刪節點來靈活地調整鍊錶的長度。鍊錶被廣泛用於實現 redis 的各種功能, 比如列表鍵, 發布與訂閱, 慢查詢, 監視器, 等等。

2.定義

/*

*鍊錶節點

*/typedef

struct listnode listnode;

/**雙端鍊錶迭代器

*/typedef

struct listiter listiter;

/**雙端鍊錶的封裝

*煉表表頭節點的前置節點和表尾節點的後置節點都指向 null , 所以 redis 的鍊錶實現是無環鏈表。

*/typedef

struct

list list;

redis原始碼解析之鍊錶結構

typedef struct listnode listnode 雙端鍊錶節點包含2個指標域和1個資料域,注意資料的型別為void 因此其可以承載任意資料型別。typedef struct list list 雙端鍊錶中,使用函式指標來封裝與節點值相關的操作,在後面的使用中較頻繁,並維護乙個len作...

redis0 1原始碼解析之鍊錶

分析 之前先看看鍊錶的資料結構。新建乙個煉表頭結點 list listcreate void 釋放乙個鍊錶 void listrelease list list 釋放鍊錶記憶體 zfree list 3 插入乙個節點 支援頭插和尾插 給鍊錶新增乙個節點,頭插法 list listaddnodehea...

Redis鍊錶(adlist) 含原始碼

鍊錶作為經典且常用的資料結構,在很多高階程式語言中都內建了鍊錶這種資料額結構,但是redis是有c語言實現,並沒有內建這種資料結構,所以redis自身構建了鍊錶。節點和鍊錶的實現 listnode結構表示為 typedef struct listnode listnode 節點的定義是很簡單的,這些...