redis內部資料結構的資料結構

2022-08-27 15:45:17 字數 1264 閱讀 8557

redis對外的公眾的資料結構有五種string,list,sethashzset

編碼常量

編碼所對應的底層資料結構

redis_encoding_int

long 型別的整數

redis_encoding_embstr

embstr 編碼的簡單動態字串

redis_encoding_raw

簡單動態字串

redis_encoding_ht

字典redis_encoding_linkedlist

雙端鍊錶

redis_encoding_ziplist

壓縮列表

redis_encoding_intset

整數集合

redis_encoding_skiplist

跳躍表和字典

dic底層

/*hash表乙個節點包含key,value資料對 */

typedef struct dictentry v;

} dictentry;

/* 儲存不同資料型別對應不同操作的**函式 */

typedef struct dicttype dicttype;

typedef struct dictht dictht;

typedef struct dict dict;

ziplist

typedef struct ziplistziplist;

/*元素實體所有資訊, 僅僅是描述使用, 記憶體中並非如此儲存*/

typedef struct zlentry zlentry;

skiplist

typedef struct zskiplistnode  level;

} zskiplistnode;

typedef struct zskiplist zskiplist;

intset

typedef struct intset  intset;
淘汰策略從大方向分的話就有lru(最久未使用),lfu(最少使用), ttl(即將過期刪除)從這幾個劃分的小領域淘汰策略具體稍後介紹

Redis內部涉及 的資料結構

redis就是記憶體中維持乙個巨大的字典,字典的key節點及value節點是乙個個資料結構。在這裡簡單介紹一下redis用到的資料結構。b 1.簡易動態字串 sds b redis沒有使用傳統的c字串形式,取而代之的是自己實現了乙個簡單動態字串簡易動態字串結構,簡稱為sds dynamic stri...

Redis學習筆記 Redis內部資料結構

redis內部資料結構 redis和其他key value資料庫的很大區別是它支援非字串型別的value值。它支援的value值的型別如下 sds dynamic string 簡單動態字串 雙端鍊錶 字典 dictionary map associative array 跳躍表 skiplist ...

Redis內部資料結構實現解析

redis目前在key value儲存以及快取系統中有著非常廣泛的應用,且以高效快速著稱。不同於其他key value資料庫,redis提供了豐富的資料結構型別,value可以是字串 列表 雜湊和有序集等,為使用者操作帶來了極大的便利。本文希望通過分析其內部資料結構及演算法的實現機制,來揭示其高效能...