碼神營地 redis資料結構 字典

2021-08-13 17:21:13 字數 741 閱讀 5250

redis資料結構-字典

字典是比較麻煩的一種資料結構,資料結構也相對複雜一些,redis2-x和redis4-x版本該資料結構定義是一致的,本文拿redis4-x來看。

更過關於redis操作和學習教程請進入碼神營地官網:www.icodegod.com

/* add an element to the target hash table */

int dictadd(dict *d, void *key, void *val)

從原始碼可知,先做了設定key的操作,然後再做設定val操作。

dictentry *dictaddraw(dict *d, void *key, dictentry **existing)

設定key操作中首先會檢查該字典中是否使用了rehash,判斷rehash進行到哪一步了,然後會判斷該key是否已經存在,如果存在則直接返回null,無需再重新建立。如果該key值已經存在則返回null,如果該key不存在則判斷使用哪個雜湊表進行新的實體採用頭插法插入,然後設定新的實體的key欄位。

設定完key呼叫設定值函式dictsetval設定key對應值。因為設定key對應的值比較簡單,redis對應原始碼中將該方法設定為巨集定義:

#define dictsetval(d, entry, _val_) do  while(0)

redis資料結構 字典

1.1 雜湊表資料結構typedef struct dictht dictht 1.2 字典資料結構typedef struct dict dict 2.1 擴縮容條件 2.2 擴容流程 2.3 漸進式rehash 2.4 漸進式rehash場景3.1 迭代器資料結構 迭代器主要用於遍歷字典,遍歷資...

Redis資料結構 字典

1,字典,又稱為符號表 關聯陣列 或對映,是一種用於儲存鍵值對的抽象資料結構。2,redis的字典使用雜湊表作為底層實現,雜湊表的結構定義如下 typedef struct dicthtdicket table屬性是乙個陣列,陣列中的每個元素都是乙個指向dict.h dictentry結構的指標,每...

Redis資料結構 字典

字典在redis中應用廣泛,redis資料庫的底層就是使用字典來實現的,對資料庫的增刪查改也都是建立在字典的操作之上的。此外,字典還是雜湊鍵的實現之一。雜湊表由dict.h dictht結構定義 typedef struct dictht dictht 雜湊表節點使用dictentry結構表示,每個...