Redis 鍊錶和鍊錶節點

2021-10-14 08:29:35 字數 625 閱讀 9644

每個鍊錶節點使用乙個 adlist.h/listnode 結構來表示:

typedef struct listnode  listnode;
多個 listnode 可以通過 prev 和 next 指標組成雙向鍊錶。

使用 adlist.h/list 來持有鍊錶, 操作起來會更方便

typedef struct list  list;
下圖是由乙個 list 結構和三個 listnode 結構組成的鍊錶

redis 的鍊錶實現的特性可以總結如下:

函式作用

時間複雜度

listsetdupmethod

將給定的函式設定為鍊錶的節點值複製函式

o(1)

listgetdupmethod

返回鍊錶當前正在使用的節點值複製函式

複製函式可以通過鍊錶的 dup 屬性直接獲得, o(1)

python 釋放鍊錶節點 redis 鍊錶

摘自 redis設計與實現 鍊錶提供了高效的節點重排能力,以及順序性的節點訪問方式,並且可以通過增刪節點來靈活地調整鍊錶的長度。鍊錶在 redis 中的應用非常廣泛,比如列表鍵的底層實現之一就是鍊錶 當乙個列表鍵包含了數量比較多的元素,又或者列表中包含的元素都是比較長的字串時,redis 就會使用鍊...

鍊錶 刪除鍊錶的節點

劍指offer的乙個題,題目是要求在最少的時間內刪除鍊錶的節點。問題分析 對於鍊錶的刪除,按照劍指offer的一貫思路就是展開討論 1 空鍊錶咋辦 待刪除的節點是空節點咋辦 2 要刪除的節點在鍊錶中的位置有三種情況 1 鍊錶只有乙個節點,待刪除節點是表頭又是尾節點 2 鍊錶有多個節點,待刪除的節點是...

Redis 鍊錶

定義 每個鍊錶節點使用乙個 adlist.h listnode 結構來表示 typedef struct listnode listnode adlist.h list 列表結構 typedef struct list list 特性 redis 的鍊錶實現的特性可以總結如下 雙端 鍊錶節點帶有 p...