Redis基本資料類對應的底層資料結構大解析
阿新 • • 發佈:2021-01-03
寫在前面: 眾所周知 現在JAVA開發很內卷,玩轉redis還不夠,面試會經常被問redis底層C語言的資料結構,已經被問好幾次了!是時候結束了
在Redis當中鍵值對是儲存在DicEntry結構當中
- Key:SDS,簡單動態陣列結構(已使用的長度,可以使用的長度,char[] )
- Value: RedisObject
- next指標
接下來重要照顧一下redisObject
typedef struct redisObject {
// 型別:string,list,hash,set,sorted set(5種基本型別)
unsigned type:4;
// 不使用(對齊位)
unsigned notused:2;
// 編碼方式
unsigned encoding:4;
// LRU 時間(相對於 server.lruclock)
unsigned lru:22;
// 引用計數
int refcount;
// 指向物件的值
void *ptr;
} robj;