Redis主要支持的數據類型有5種:String ,Hash ,List ,Set ,和 Sorted Set。redis
字符串類型數據結構
列表類型ui
hash類型指針
typedef struct dictEntry { void *key; union { //由於value有多種類型,因此value用了union來存儲 void *val; uint64_t u64; int64_t s64; double d; } v; struct dictEntry *next; //下一個節點的地址,用來處理碰撞,全部分配到同一索引的元素經過next指針 //連接起來造成鏈表key和v均可以保存多種類型的數據 } dictEntry;
typedef struct dictht { dictEntry **table;//buckets的地址 unsigned long size;//buckets的大小,總保持爲 2^n unsigned long sizemask;//掩碼,用來計算hash值對應的buckets索引 unsigned long used;//當前dictht有多少個dictEntry節點 } dictht;
集合類型code
有序集合對象
跳躍表blog