redis原始碼閱讀筆記

2021-07-09 11:48:28 字數 754 閱讀 2967

在redis中乙個資料庫結構體是這樣的

每個dict是乙個hash表

typedef struct redisdb redisdb;

// dict欄位中存放以key值為鍵,以value指標為值的hash表項
dict根據型別的不同分為如下幾種:

1、字串(string)  操作 set  "key"  "value";             get     "key"

鍵是key的字串物件,value是value的字串物件

2、雜湊(hashes)操作 hset    key  field  value

當field的數量少於一定數量時   鍵是key的字串物件,值是zipmap的buffer     buffer中內容形如   field1:value1 field2:value2

當field的數量多於一定量時,值公升級為乙個dict物件指標,dict中存放field和value的鍵值對

3、列表(lists)操作 lpush key value

鍵為key的字串物件,值為ziplist物件,value

4、集合(sets)操作 sadd  setname  member

鍵為key的字串物件,值為dict物件

dict的鍵為member,值為null指標

5、有序集合(sorted sets)

鍵為key的字串物件,值為ziplist物件

參考博文

Redis學習筆記 原始碼閱讀 整數集合

整數集合 intset 是乙個有序的 儲存整型資料的結構,當redis集合型別的元素都是整數並且都處在64位有符號整數範圍之內時,使用該結構體儲存。在兩種情況下,底層編碼會發生轉換。整數集合在redis中可以儲存int16 t int32 t int64 t型別的整型資料,並且可以保證集合中不會出現...

閱讀筆記 fsnotify原始碼閱讀

fsnotify的github位址是 fsnotify是乙個資料夾監控應用。可以使用建立乙個watcher來對某個資料夾進行監控 檔案目錄很簡單,實際就兩個程式檔案,fsnotify.go 和 各平台的fsnotify go 後乙個檔案是各個不同平台的實現 example test.go中給的是最簡...

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...