redis使用的鍊錶是雙向無環鏈表,鍊錶節點可用於儲存各種不同型別的值。
一、鍊錶結構定義
1. 鍊錶節點結構定義:
2. 鍊錶結構定義:
示例:
二、鍊錶在redis中的用途
1. 作為列表鍵的底層實現之一:當乙個列表鍵包含了數量比較多的元素,又或者列表中包含的元素都是比較長的字串時,redis就會使用鍊錶作為列表鍵的底層實現。
2. 除此之外,發布與訂閱、慢查詢、監視器等功能也用到了鍊錶,redis伺服器本身還使用鍊錶來儲存多個客戶端的狀態資訊, 以及使用鍊錶來構建客戶端輸出緩衝區。
Redis資料結構之鍊錶
鍊錶基礎知識 鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序通過鍊錶中的指標鏈結次序來實現。其內部是由一系列的資料節點組成,資料節點可以動態分配。鍊錶與陣列的比較 陣列可以隨機訪問,鍊錶只能順序訪問。鍊錶容量可以動態擴充陣列不可以,鍊錶新增資料元素,不需要資料的移動。陣列新增元...
Redis資料結構 鍊錶
文章導航 readmeredis鍊錶為雙向無環鏈表!redis之資料結構篇 簡單動態字串sds提到redis使用了簡單動態字串,鍊錶,字典 雜湊表 跳躍表,整數集合,壓縮列表這些資料結構來操作記憶體,並且簡單介紹了redis簡單動態字串。本篇文章我們繼續來分析鍊錶。鍊錶是一種非常常見的資料結構,在r...
redis資料結構之雙端鍊錶
redis 的鍊錶資料結構基於 adlist.h 檔案定義的以下三種資料結構來展開 node typedef struct listnode listnode 這裡 node 的value 為什麼要弄成指標?是為了相容多種型別的 node 顯然這裡的 node 既可以儲存 int等常規數字,也可以存...