redis對外的公眾的資料結構有五種string
,list
,set
,hash
,zset
編碼常量
編碼所對應的底層資料結構
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可以是字串 列表 雜湊和有序集等,為使用者操作帶來了極大的便利。本文希望通過分析其內部資料結構及演算法的實現機制,來揭示其高效能...