鍊錶在redis中的應用非常廣泛,列表鍵的底層實現之一就是鍊錶,發布與訂閱、慢查詢、監視器等功能也用到了鍊錶,redis伺服器本身使用鍊錶來儲存多個客戶端的狀態資訊,以及使用鍊錶來構建客戶端輸出緩衝區。
鍊錶的實現原始碼:
//鍊錶節點
typedef
struct listnode listnode;
//鍊錶迭代器
typedef
struct listiter listiter;
//鍊錶結構
typedef
struct
list list;
特性:雙端、無環、帶表頭指標和表尾指標、帶鍊錶長度計數器、多型(鍊錶節點使用void*指標來儲存節點值,並可通過list結構的dup、free、match三個屬性為節點值設定特定函式,所以鍊錶可以用於儲存各種不同型別的值)。 Redis底層之鍊錶
redis底層鍊錶節點使用listnode來實現。每個listnode節點包含三個成員,乙個prev指標指向前乙個listnode,乙個next指標指向下乙個節點。乙個value指標指向任何型別的值。多個listnode通過prev和next指標組成雙端鍊錶。通過乙個list比較方便地來管理產生的l...
Redis 鍊錶
定義 每個鍊錶節點使用乙個 adlist.h listnode 結構來表示 typedef struct listnode listnode adlist.h list 列表結構 typedef struct list list 特性 redis 的鍊錶實現的特性可以總結如下 雙端 鍊錶節點帶有 p...
redis原始碼之鍊錶list
未完待續 1.簡介 離散,無序的資料結構。鍊錶提供了高效的節點重排能力,以及順序性的節點訪問方式,並且可以通過增刪節點來靈活地調整鍊錶的長度。鍊錶被廣泛用於實現 redis 的各種功能,比如列表鍵,發布與訂閱,慢查詢,監視器,等等。2.定義 鍊錶節點 typedef struct listnode ...