Redis (Remote Dictionary Service) 即遠程字典服務 。是一個由C 語言編寫的基於內存的存儲服務。git
reids 目前支持5種基礎數據結構 string,list, hash,set,zset
string(字符串)
在c 語言中的結構定義(SDS)見 "sds.h/sdshdr"
注:代碼結構和源碼不太同樣 爲方便理解 有興趣能夠看 https://github.com/antirez/re...
以下程序員
stract sdshdr{ int len;// 記錄sds 保存的字符串長度 int alloc; // 記錄buf 數組中未使用的字節數量 char flags; // 3 lsb of type, 5 unused bits char buf[]; //字節數組,存儲字符 }
程序員面試凡事都喜歡問爲何?你先琢磨下,後面開始給你們講爲何?github
list (列表)面試
在c 語言中的結構定義redis
typedef struct listNode { struct listNode *prev; //前置節點 struct listNode *next;// 後置節點 void *value; // 值 } listNode; typedef struct list { listNode *head; //頭節點 listNode *tail;// 尾節點 void *(*dup)(void *ptr);// 節點值複製函數 void (*free)(void *ptr);// 節點值釋放函數 int (*match)(void *ptr, void *key);//節點值對比函數 unsigned long len;// 鏈表包含的節點數量 } list;